GovernIB / projectebase

Projecte Base - JBoss 7.2 EAP & Open JDK 11
4 stars 0 forks source link

Mostrar les dades de l'usuari autenticat #108

Closed acuevas-dgtic closed 3 years ago

acuevas-dgtic commented 3 years ago

S'hauria d'afegir una secció de Configuració d'usuari on es mostri les dades (nom, llinatges, nif, correu electrònic) de l'usuari autenticat al backoffice.

No s'ha de generar cap plugin addicional. La solució més simple seria aquesta:

import org.keycloak.KeycloakPrincipal;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.representations.IDToken;
..

final Principal userPrincipal = request.getUserPrincipal();
if (userPrincipal instanceof KeycloakPrincipal) {
    KeycloakPrincipal<KeycloakSecurityContext> kp =
    (KeycloakPrincipal<KeycloakSecurityContext>) userPrincipal;
    IDToken token = kp.getKeycloakSecurityContext().getIdToken();
    id=token.getPreferredUsername();
    correu=token.getEmail();
    llinatges=token.getFamilyName();
    nom=token.getGivenName();

    // El NIF, al ser atributo personalizado, está en otherClaims:
    Map<String,Object> otherClaims = token.getOtherClaims();
    nif=otherClaims.get(nif);
}
antonireus commented 3 years ago

imatge