Quando configuramos no serviços do fluig uma api de terceiros com autenticação oauth 2.0 la colocamos as informações referente a obtenção de um novo token de acesso e segundo o suporte da totvs o fluig não faz o refresh token, mesmo tendo as informações la imputadas. O mesmo me disse que tenho que atualizar manualmente estas informações.
Alguem sabe se existe um metodo para faze o refresh token?
Ainda não tive essa necessidade. Mas já vi um amigo comentado que fez da seguinte forma.
Criou um dataset sincronizado onde executava a api de tempo em tempo, para obter o novo token.
De posse desse novo tokem ele usava o serviço SOAP e alterava o token antigo do dataset por esse novo token que foi obtido pelo dataset sincronizado.
Tive uma situação de tentar utilizar um WS com OAuth com grant_type Password e o Fluig não tem essa opção. No caso logava numa central de autenticação (tipo o Identity) que era por OAuth (e aí utilizava password) e a aplicação em si autenticava via JWT.
Acabei fazendo tudo na mão, deixando o serviço no Fluig só pra indicar a URL. Aí no clientService.invoke
coloquei os cabeçalhos com o token JWT gerado.
Minha única utilização dessa parte de OAuth do Fluig foi pra deixar aplicações externas o acessarem, mas serviço dele indo pra outros ainda não fiz.
Opa acionei o suporte da totvs pois a documentação fal que é obrigatorio preencher esses dados se o token expirade tempos em tempo logo o lfuig tem que fazer. Aguardando eles responderem como contorno cadastrei o servido que estou utiliando com as autenticações e criei um servoço so para o refresh dai se otoken tiver expirado chamo o serviço de refrash pego o tokne gravo no via banco no lugar do outro token. So falta finalizar a gravação do token pois o metodo que usava na 1.7 não ta indo. Ou to fazendo besteira ou parou de funcionar kkkkkk.
//Armazenar esse token no fluig
var dataSource = "/jdbc/AppDS";
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
QUERY = "UPDATE fdn_authorizeclientdata SET ACCESS_TOKEN='"+ json.access_token +"' WHERE AUTHORIZECLIENTDATA_ID=25;";
log.info("Query "+QUERY);
try {
var conn = ds.getConnection();
var stmt = conn.createStatement();
var rs = stmt.executeUpdate(QUERY);
dataset.addRow(["Sucesso Update"]);
} catch (e) {
log.error("ERRO==============> " + e.message);
dataset.addRow([e.message]);
return dataset;
} finally {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
return dataset;