4

사용자 지정 AuthenticationSuccessHandler가 있습니다.AuthenticationSuccessHandler에서 세션 범위의 빈을 검색하는 방법은 무엇입니까?

내가하고 싶은 일은 onAuthenticationSuccess 메서드 내에서 일부 세션 데이터를 설정하는 것입니다.

세션 데이터를 저장하려면 모든 세션 내에서 잘 작동하는 세션 범위 bean을 사용하고 싶습니다.

하지만 onAuthenticationSuccess 방법 내에서 검색하려고하면, 나는 예외가 얻을 : 이름 'scopedTarget.sessionData'와

을 만드는 중 오류 콩 : 범위 '세션'은 전류 활성화되지 않습니다 실;

내 코드는 다음과 같습니다

WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext()); 
SessionData sessionData = context.getBean(SessionData.class); 

어떤 아이디어?

답변

6

당신은 세션 범위를 구현하기 위해 필요한 상태를 노출하는 리스너를 선언하는 시도 할 수 있습니다 :

상태가 DispatcherServlet에 의해 노출 때문에 요청이 DispatcherServlet (예를 들면 봄 보안 필터를 입력하기 전에이 사용할 수없는 것이 기본적으로
<listener> 
    <listener-class> 
     org.springframework.web.context.request.RequestContextListener 
    </listener-class> 
</listener> 

).

관련 문제