2 votes

Obtenir une propriété personnalisée de l'utilisateur principal

J'ai un objet personnalisé de détails d'utilisateur avec une partie de prénom. Le nom d'utilisateur ci-dessous fonctionne, mais je veux que quelque chose comme le deuxième fonctionne. Comment puis-je accéder à cette propriété personnalisée ?

<security:authentication property="principal.username" />

<security:authentication property="principal.firstname" />

3voto

Stephen C Points 255558

Je présume que vous avez essayé ce qui précède et que cela n'a pas fonctionné.

Vérifiez votre classe personnalisée de détails sur l'utilisateur pour vous assurer que la capitalisation des méthodes getter et setter pour la propriété 'firstname' est correcte.

2voto

limc Points 14557

Ça marche pour moi. Voici mon code de test :-

Classe CustomUserDetails

public class CustomUserDetails implements UserDetails {
    public String getFirstName() {
        return "hello";
    }

    ...
}

Balise personnalisée dans JSP

La balise suivante renvoie hello .

<security:authentication property="principal.firstName" /> 

Au fait, assurez-vous que vous ne mettez pas getFirstName() dans la classe anonyme, car cela ne fonctionnera pas.

Ce que j'essaie de dire, c'est qu'il ne faut pas faire ça.

...

return new UserDetails() {
    // adding extra method here will not work
    public String getFirstName() {
        return "hello";
    }

    public String getUsername() {
        return "test";
    }

    ...    
};

... faire ceci :-

...

// this class implements UserDetails and contains getFirstName()
CustomUserDetails csd = new CustomUserDetails();
csd.set...(...)
...

return csd;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X