Si vous voulez juste pour imprimer le nom d'utilisateur sur les pages, peut-être que vous aimerez cette solution. Il est libre de l'objet castings et fonctionne sans Ressort de la Sécurité:
@RequestMapping(value = "/index.html", method = RequestMethod.GET)
public ModelAndView indexView(HttpServletRequest request) {
ModelAndView mv = new ModelAndView("index");
String userName = "not logged in"; // Any default user name
Principal principal = request.getUserPrincipal();
if (principal != null) {
userName = principal.getName();
}
mv.addObject("username", userName);
// By adding a little code (same way) you can check if user has any
// roles you need, for example:
boolean fAdmin = request.isUserInRole("ROLE_ADMIN");
mv.addObject("isAdmin", fAdmin);
return mv;
}
Note "HttpServletRequest request" paramètre ajouté.
Fonctionne bien parce que le Printemps injecte ses propres objets (les enveloppes) pour HttpServletRequest, Principale etc., ainsi, vous pouvez utiliser les méthodes de java pour récupérer les informations de l'utilisateur.