2014-01-09 2 views
0

저는 Spring 보안 ConcurrentSessionControlStrategy를 확장하고 allowableSessionsExceeded 메소드를 오버라이드하려고합니다.Spring SessionRegistry 세션 id

이 방법에서는 sessionInformation.getSessionId()를 사용하고 싶지만 다른 인증 세션에서 로그인 할 때 저장 한 ID를 얻습니다. 인증에서 내가 저장했습니다 :

String sessionId = ((WebAuthenticationDetails) authentication.getDetails()).getSessionId(); 

왜 다른가요? 나는 무엇을 얻을 수 있습니까?

답변

0

소리가 좋아. 인증 전에 생성 된 이전 sessionId를 저장하고 있으며 인증 성공 후 무효화됩니다.

인증 후에 새 sessionId를 가져와야합니다.

업데이트 : 더 나은 방법이 들어 sessionId가

를 얻기 위해, 사용자 정의를 SessionRegistry

public class MySessionRegistry implements SessionRegistry{ 

     @Override 
    public SessionInformation getSessionInformation(String sessionId) { 
     // this is your session id to be saved 
    } 

    } 

를 구현하고

<beans:bean id="sessionRegistry" 
     class="com.test.MySessionRegistry"> 
</beans:bean> 
+0

것은 확실히 같은 맥락에서 등록해야합니다 , 나는이 세션 id instad 인증 후 하나의 사용해야합니까? – lior

+0

성공적인 인증 후에도 동일한 세션 ID를 사용 하시겠습니까? – dhamibirendra

+0

사용자 지정 세션 레지스트리가 무엇인지 이해할 수 없습니까? 내가 그것을 사용해야합니까? 그러면 sessionInformation.getSessionId()가 변경됩니까? – lior