"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment obtenir l'utilisateur de l'utilisateur de l'utilisateur actuel dans l'application Spring?

Comment obtenir l'utilisateur de l'utilisateur de l'utilisateur actuel dans l'application Spring?

Publié le 2025-04-15
Parcourir:938

How to Retrieve the Active User's UserDetails in a Spring Application?

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.

Dernier tutoriel Plus>

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