Récupération de l'utilisateur de l'utilisateur actif
Lorsque vous travaillez avec les contrôleurs dans une application de printemps, la récupération des détails de l'utilisateur actif peut être réalisé en accédant à l'utilisateur de l'utilisateur. (Utilisateur) SecurityContexTholder.getContext (). GetAuthentication (). GetPrincipal ();
User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
public ModelandView SomeRequestHandler (@AuthenticationPrincipal User ActiveUser) { ... }
Utilisation d'argumentResolvers
Avant Spring Security 3.2, ou si la personnalisation est requise, les résolveurs d'arguments peuvent être utilisés. Un webargumentResolver, comme CurrentUserWebargumentResolver, peut être créé pour résoudre automatiquement l'objet userDetails.
public ModelAndView someRequestHandler(@AuthenticationPrincipal User activeUser) {
...
}
Ce résolveur doit être enregistré dans la configuration de l'application.
printemps 3.1: handlermethodargumentResolver
public class CurrentUserWebArgumentResolver implements WebArgumentResolver {
@Override
public Object resolveArgument(...) {
if (...) {
return (User) ((Authentication) principal).getPrincipal();
} else {
return WebArgumentResolver.UNRESOLVED;
}
}
}
classe publique CurrentUserHandLerMethodargumentResolver implémente handlerMethodargumentResolver { @Outrepasser objet public résolveargument (...) { si (...) { return (utilisateur) ((authentification) principal) .getPrincipal (); } autre { retourner webargumentResolver.unResolved; } } }
Ce résolveur doit également être enregistré dans la configuration. En utilisant ces méthodes, vous pouvez obtenir avec élégance les Details de l'utilisateur de l'utilisateur actif dans vos contrôleurs, améliorant la maintenabilité et la lisibilité du code de votre application Spring.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3