2014-05-12 5 views
0

스프링 보안 3.1.4를 사용하고 있는데 다음과 같은 문제가 있습니다. 사용자 정의 SavedRequestAwareAuthenticationSuccessHandler을 구현했으며 캐시를 구현했습니다 SessionRegistry. 문제는 내가받은 세션 ID가 SessionRegistry.registerNewSession과 다르다는 것입니다. SavedRequestAwareAuthenticationSuccessHandler .onAuthenticationSuccess스프링 보안 변경 sessionid

먼저 세션 등록이 호출됩니다. 올바른 것이 무엇입니까? 어떻게 둘 다 똑같이 할 수 있습니까?

사용자 정의 SessionRegistry.registerNewSession이 스프링 보안 세션 ID를 사용하는 방법이 있습니까?

답변

0

단순한 추측입니다. 그러나 그것은 다음과 같은 문제로 들립니다.

기본적으로 스프링 보안에는 세션 고정 보호라는 기능이 활성화되어 있습니다. 보안 상 이유로 세션을 새 ID로 마이그레이션합니다. 누군가가 이메일을 통해 기존 세션 ID가있는 URL을 제공한다고 가정하면 링크를 클릭하고 로그인하십시오. URL을 제공 할 수있는 사람은 제공된 세션 ID를 사용하여 간단하게 계정을 해킹 할 수 있습니다.

사용을 중지하려면 스프링 보안 구성에 다음 줄을 입력하면됩니다. 그러나 위험을 인식하고 있어야합니다.

<http .. > 
... 
<session-management session-fixation-protection="none"> 
... 
</http> 
+0

사용자 정의 SessionRegistry.registerNewSession이 스프링 보안 세션 ID를 사용하는 방법이 있습니까? – lior

+0

내가 위에서 설명한 것을 제외하고. 그러나 달성하려는 것은 무엇입니까? 세션 레지스트리의 작업은 로그인 후에 세션과 successhandler가 일부 작업을 수행하도록 유지하는 것입니다. 왜 같은 세션 ID가 필요한가요? – Nils

관련 문제