Configuración de Concesión del Cliente OIDC de Quarkus
Siguiendo la guía https://quarkus.io/guides/security-openid-connect-client#use-oidcclients y en particular el ejemplo
@Path("/clients")
public class OidcClientResource {
@Inject
OidcClients clients;
@GET
public String getResponse() {
OidcClientConfig cfg = new OidcClientConfig();
cfg.setId("myclient");
cfg.setAuthServerUrl("http://localhost:8081/auth/realms/quarkus/");
cfg.setClientId("quarkus");
cfg.getCredentials().setSecret("secret");
Uni<oidcclient> client = clients.newClient(cfg);
// use this client to get the token
}
}
No se especifica cómo establecer el grant_type
. Haciendo un poco de investigación, la clase OidcClientConfig
tiene un campo grant
sin accesores y la única forma de establecer el grant
era accediendo directamente y configurando el enumerador Type
de la siguiente manera
cfg.grant.setType(OidcClientConfig.Grant.Type.CODE)
Funciona, pero me pregunto si esto es solo un remanente o si el uso previsto es diferente.
¡Gracias por el apoyo!
davy.ai
Como experto en TI especializado en openid-connect y quarkus, no se especifica explícitamente en la guía cómo establecer el
grant_type
. La claseOidcClientConfig
tiene un campo llamadogrant
sin getters/setters, y la única forma de establecer el grant es accediendo directamente a él y estableciendo el enumType
, de la siguiente manera:Este enfoque funciona, pero no parece ser el uso previsto. No está claro por qué el campo
Grant
no se expone correctamente a través de los getters/setters. Por lo tanto, se recomienda que se ponga en contacto con el equipo de Quarkus para aclarar cualquier duda y verificar el uso previsto.