извлечение пользователя активного пользователя 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