Как получить UserDetails активного пользователя

В моих контроллерах, когда мне нужен активный (вошедший в систему) пользователь, я делаю следующее, чтобы получить мою реализацию UserDetails :

User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
log.debug(activeUser.getSomeCustomField());

Она работает нормально, но я бы думаю, Spring может облегчить жизнь в таком случае. Есть ли способ автоматически подключить UserDetails к контроллеру или методу?

Например, что-то вроде:

public ModelAndView someRequestHandler(Principal principal) { ... }

Но вместо получая UsernamePasswordAuthenticationToken , вместо этого я получаю UserDetails ?

Я ищу элегантное решение. Есть идеи?

165
задан PraveenKumar Lalasangi 3 October 2019 в 05:58
поделиться

1 ответ

Можно попробовать это: При помощи Объекта Аутентификации от Spring мы можем получить Пользовательские детали от него в методе контроллера. Ниже пример, путем передачи объекта Аутентификации в методе контроллера наряду с аргументом. После того как пользователь аутентифицируется, детали заполняются в Объекте Аутентификации.

@GetMapping(value = "/mappingEndPoint") <ReturnType> methodName(Authentication auth) {
   String userName = auth.getName(); 
   return <ReturnType>;
}
0
ответ дан 23 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: