«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить пользовательские данные текущего пользователя в приложении Spring?

Как получить пользовательские данные текущего пользователя в приложении Spring?

Опубликовано в 2025-04-15
Просматривать:402

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

извлечение пользователя активного пользователя userDetails

при работе с контроллерами в приложении Spring, получение деталей активного пользователя может быть достигнуто путем доступа к реализации пользователя. (Пользователь) SecurityContextholder.getContext (). GetAuthentication (). GetPrincipal ();

User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();

с использованием @authentication princepal annot @AuthenticationPrincipal Annotation может быть использована. Это элегантное решение обеспечивает прямое впрыск объекта userDetails в контроллер или метод. ... }

с использованием ArgrageReSolvers

до Spring Security 3.2, или если требуется настройка, можно использовать резолюры аргументов. WebargumentResolver, как и CurrentUserWebargumentResolver, может быть создан для автоматического разрешения объекта userDetails. @Override общедоступный объект ResolVeargument (...) { если (...) { return (пользователь) (((аутентификация) Принципал) .getPrincipal (); } еще { вернуть webargumentresolver.unresolved; } } }

public ModelAndView someRequestHandler(@AuthenticationPrincipal User activeUser) {
    ...
}

Spring 3.1 : HandlerMethodArgumentResolver

In Spring 3.1 , the HandlerMethodArgumentResolver, like CurrentUserHandlerMethodArgumentResolver, is recommended. Он обеспечивает аналогичную функциональность для WebargumentResolver.

public class CurrentUserWebArgumentResolver implements WebArgumentResolver {
    @Override
    public Object resolveArgument(...) {
        if (...) {
            return (User) ((Authentication) principal).getPrincipal();
        } else {
            return WebArgumentResolver.UNRESOLVED;
        }
    }
}
] этот резолвер также должен быть зарегистрирован в конфигурации.

. Используя эти методы, вы можете элегантно получить пользовательские данные активного пользователя в ваших контроллерах, улучшая обслуживание и читаемость кода вашего весеннего приложения.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3