2012-09-24 3 views
1

스프링 3.1 인증과 연결된 어플리케이션이 있습니다. 대화 상자에 몇 가지 정보를 표시하도록 AJAX 요청을하는 일부 페이지가 있습니다. 이제 사용자의 세션 시간이 초과되면 Spring은 로그인 페이지로 리디렉션됩니다. 나는 AJAX 기반 로그인 페이지를 원하지 않는다. 현재 작업을 취소하여 사용자가 로그인 페이지로 완전히 이동하게하고 싶습니다. 사용자가 로그인하면 사용자가 있던 마지막 페이지로 이동합니다 (AJAX 요청이 이루어진 곳부터).스프링 3.1 : 세션 타임 아웃 처리

요청이 페이지에서 이루어진 경우 리다이렉션 항목이 올바르게 작동합니다.

답변

1

로그인 페이지로 리디렉션하는 클래스는 LoginUrlAuthenticationEntryPoint입니다. (예를 들어 Accept 헤더를보고) Ajax 요청을 감지하고 리디렉션을 수행하는 대신 오류 코드를 전송하는 사용자 정의 AuthenticationEntryPoint 구현을 작성합니다.

그래도 클라이언트 측에서이를 감지해야합니다. Spring Security가 할 수있는 일은별로 없지만 Javascript에서 현재 페이지를 다시로드 할 수 있어야합니다. 그러면 로그인이 강제 실행되고 원래 페이지로 리디렉션됩니다 (기본 스프링 보안 동작).

+0

아약스 호출에서 리디렉션하는 방법을 샘플 코드로 제공 할 수 있습니까? – grep

관련 문제