Fluig não executa o refresh token

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.

1 curtida

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;