Estate atento ya que en este tutorial hallarás el hallazgo que buscas.
Solución:
Parece que le falta alguna configuración para el servidor de autenticación. KeycloakRestTemplate
ID de cliente usado, secreto de cliente, nombre de usuario y contraseña para validar contra el servidor Keycloak. Necesitas configurar el clientid
, clientsecret
, realm
y URL del servidor de autenticación para KeycloakClientCredentialsRestTemplate
me gusta –
@Service
public class MyKeycloakClientCredentialsConfig
@Value("$keycloak.realm")
private String realm;
@Value("$keycloak.auth-server-url")
private String authServerUrl;
@Value("$keycloak.resource")
private String clientId;
@Value("$keycloak.credentials.secret")
private String clientSecret;
@Bean
public KeycloakClientCredentialsRestTemplate createRestTemplate()
return new KeycloakClientCredentialsRestTemplate(getClientCredentialsResourceDetails(),
new DefaultOAuth2ClientContext());
private ClientCredentialsResourceDetails getClientCredentialsResourceDetails()
String accessTokenUri = String.format("%s/realms/%s/protocol/openid-connect/token",
authServerUrl, realm);
List scopes = new ArrayList(0); // TODO introduce scopes
ClientCredentialsResourceDetails clientCredentialsResourceDetails =
new ClientCredentialsResourceDetails();
clientCredentialsResourceDetails.setAccessTokenUri(accessTokenUri);
clientCredentialsResourceDetails.setAuthenticationScheme(AuthenticationScheme.header);
clientCredentialsResourceDetails.setClientId(clientId);
clientCredentialsResourceDetails.setClientSecret(clientSecret);
clientCredentialsResourceDetails.setScope(scopes);
return clientCredentialsResourceDetails;
Mi resttemplate es así:
public class SampleRestTemplate extends OAuth2RestTemplate
public KeycloakClientCredentialsRestTemplate(OAuth2ProtectedResourceDetails resource,
OAuth2ClientContext context)
super(resource, context);
su trabajo perfectamente para mí.
De acuerdo, encontré la solución yo mismo: necesitaba configurar el botón “Cuentas de servicio habilitadas” en ON en la configuración del cliente para “backend-service2” dentro de keycloak.
Sección de Reseñas y Valoraciones
Recuerda que tienes permiso de decir si encontraste tu dificultad justo a tiempo.