Spring MVC получаем текущего пользователя в качестве параметра (@AuthenticationPrincipal)

Обычно в Spring Framework текущий пользователь получается примерно таким кодом:

Однако в контроллерах можно получать текущего пользователя в качестве параметра метода. Для этого нам нужно создать свою аннотацию, которая будет аннотирована аннотацией org.springframework.security.web.bind.annotation.AuthenticationPrincipal:

Затем в конфигурации Spring MVC добавить строки, которые будут заполнять параметры контроллеров текущим пользователем:

Как видите здесь мы просто добавили AuthenticationPrincipalArgumentResolver  в секцию argument-resolver.

Теперь мы можем помечать параметры методов контроллера, которые обрабатывают запросы с помощью @RequestMapping, нашей аннотацией @CurrentUser, и они будут заполнены текущим экземпляром класса с описанием залогиненного пользователя Spring Security. Пример:

 

Spring MVC получаем текущего пользователя в качестве параметра (@AuthenticationPrincipal): 3 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *