Преимущества использования аннотации @AuthenticationPrincipal в Spring Security:
- Упрощённый и более компактный подход к получению объекта UserDetails непосредственно в методе контроллера. 1 Аннотация автоматически разрешает объект UserDetails из объекта Authentication и внедряет его в параметр метода. 1
- Возможность использовать настраиваемый объект принципала вместо стандартного UserDetails. 1 Это полезно, если нужно хранить в объекте принципала дополнительную информацию о пользователе. 1
- Отделение слоя Spring MVC от реализаций Spring Security. 4 Такой подход упрощает тестирование и облегчает процесс мокирования. 2
Начиная с версии Spring 4.0 и более поздних, фреймворк самостоятельно обрабатывает эту аннотацию с помощью AuthenticationPrincipalArgumentResolver. 2