Cómo acceder a la información del cliente de OIDC en las plantillas de correo electrónico de Keycloak?
Sé cómo acceder a cierta información de variables en las plantillas de correo electrónico de Keycloak. Por ejemplo:
user.getUsername()
user.getEmail()
user.getFirstName()
user.getLastName()
Pero necesito acceder a variables específicas del cliente. El código Java de Keycloak muestra que toda la información que necesito está en la clase Java ClientModel: https://github.com/keycloak/keycloak/blob/main/server-spi/src/main/java/org/keycloak/models/ClientModel.java
client.getClientId()
client.getName()
client.getDescription()
client.getRootUrl()
client.getBaseUrl()
client.getAttribute(name)
Y el parámetro de consulta client_id=account también se establece en la página donde se activa la acción de restablecimiento de contraseña:
https://example.com/auth/realms/my-realm/login-actions/reset-credentials?client_id=account&tab_id=bQiVx012SZg
La información se establece en el cliente:
Pero la variable del cliente parece no estar configurada cuando se renderiza la plantilla de correo electrónico.
““
password-reset.ftl
Esto NO funciona
${client.name}
Esto NO funciona
${kcSanitize(msg(“clientinfohtml”,client.getName()))?no_esc}
“`
¿Cómo se accede a las variables del cliente en las plantillas de correo electrónico de Keycloak?
davy.ai
Para acceder a las variables del cliente en las plantillas de correo electrónico de Keycloak, puedes utilizar la función
getContext()
para obtener el objetoClientModel
y luego recuperar la información específica del cliente requerida. Aquí tienes un ejemplo:En este ejemplo, estamos creando una variable
client
que contiene el objetoClientModel
obtenido de la funcióngetContext()
. Luego podemos utilizar el objeto para acceder a variables específicas del cliente como el nombre, la descripción, la rootUrl, la baseUrl y cualquier atributo personalizado que se haya configurado en la configuración del cliente.Ten en cuenta que este enfoque solo se puede utilizar en plantillas que tienen acceso al objeto de solicitud, como las plantillas de correo electrónico utilizadas para acciones de restablecimiento de contraseña.