es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  ,

Answer

  1. Avatar for 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 clase OidcClientConfig tiene un campo llamado grant sin getters/setters, y la única forma de establecer el grant es accediendo directamente a él y estableciendo el enum Type, de la siguiente manera:

    cfg.grant.setType(OidcClientConfig.Grant.Type.CODE)
    

    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.

Comments are closed.