컨트롤러에서 활성 사용자의 UserDetails를 검색하는 우아한 방법
Spring 애플리케이션에서 로그인한 사용자의 UserDetails를 얻는 방법은 다음과 같습니다. 인증 컨텍스트를 확인하고 주체를 UserDetails 구현으로 캐스팅합니다. 그러나 이 접근 방식은 편리하거나 직관적이지 않을 수 있습니다.
이 프로세스를 단순화하려면 다음과 같은 우아한 솔루션을 고려하세요.
@AuthenticationPrincipal 주석 사용(Spring Security 3.2 ):
Spring Security 3.2에서는 인증된 사용자의 UserDetails를 컨트롤러 메서드에 자동으로 삽입할 수 있는 @AuthenticationPrincipal 주석을 도입했습니다.
컨트롤러:
<code class="java">public ModelAndView someRequestHandler(@AuthenticationPrincipal User activeUser) { // Logic utilizing the activeUser object }</code>
Spring 3.1용 HandlerMethodArgumentResolver :
이전 버전의 Spring 또는 사용자 정의 요구 사항의 경우 HandlerMethodArgumentResolver를 구현하는 것이 실행 가능한 옵션입니다. 이 확인자는 주체의 유형을 결정하고 사용자 개체를 추출합니다.
인수 확인자:
<code class="java">public class CurrentUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { // Implementation to check for eligible method parameters and retrieve the User object }</code>
구성:
<code class="java">@Configuration public class ApplicationConfig { // Bean definition for the CurrentUserHandlerMethodArgumentResolver }</code>
CurrentUserWebArgumentResolver(레거시) 사용:
Spring 3.1 이전에는 CurrentUserWebArgumentResolver를 유사한 기능에 사용할 수 있었습니다.
Argument Resolver:
<code class="java">public class CurrentUserWebArgumentResolver implements WebArgumentResolver { // Implementation for method parameter validation and User object retrieval }</code>
구성:
<code class="java">@Configuration public class ApplicationConfig { // Bean definition for the CurrentUserWebArgumentResolver }</code>
선택한 솔루션은 애플리케이션의 Spring 버전과 특정 요구 사항에 따라 달라집니다. 그러나 이러한 접근 방식은 컨트롤러에서 활성 사용자의 UserDetails에 액세스하는 우아하고 일관된 방법을 제공합니다.
위 내용은 Spring 컨트롤러에서 활성 사용자의 UserDetails를 우아하게 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!