2014-10-30 8 views
0

GWT 응용 프로그램에서 양식 기반 인증을 사용하고 있으며 세션 시간 초과로 많은 어려움을 겪고 있습니다.세션 시간 초과 후 양식 기반 인증 및 정적 리소스 요청 문제가 발생했습니다.

세션이 시간 초과 된 후 사용자가 로그인하여 정적 리소스 요청을 트리거하는 작업을 수행하면 로그인 페이지가 표시되고 사용자가 다시 로그인하면 이미지 리소스 만 사용자에게 표시됩니다. 예를 들어, 사용자가 버튼 위로 마우스를 가져 가면 버튼 위에 마우스로 표시된 아이콘을 가져와야합니다.

로그인 페이지가 이미지 요청에 의해 트리거 되었기 때문에 이러한 상황이 발생하지만 이는 실제로 우리가 원하는 동작이 아닙니다. 사용자가 자신이 방문한 페이지 또는 다른 페이지로 리디렉션되는 것이 좋습니다.

더 나은 방법으로 어떻게 처리 할 수 ​​있습니까? 내가 알고 있듯이 j_security_check이 로그인 성공 후 사용자를 리디렉션하는 데 사용하는 리디렉션 URL을 변경하는 것은 매우 어렵습니다.

답변

0

내가 해결하는 방법은 호스트 페이지<security-constraint>으로 보호하는 것입니다. 정적 리소스 (이미지, 스타일 시트, GWT 스크립트)는 전혀 보호되지 않으며 AJAX 끝점 (GWT-RPC, RequestFactoryServlet 또는 앱에서 AJAX를 사용하여 호출되는 다른 끝점)은 요청에 사용자 Principal의 존재 여부 만 확인합니다. 서블릿 필터 또는 RequestFactory ServiceLayerDecorator에서 수행 할 수 있습니다. 그렇지 않은 경우 오류를 반환하지만 로그인 페이지는 표시하지 않습니다.

당신은 RequestFactory here의 보안 (클라이언트 측 here에 응답을 처리하는 코드를) 처리하는 코드 예 web.xmlhere을 볼 수 있습니다. GWT-RPC의 경우 서블릿 필터와 사용자 정의 RpcRequestBuilder 또는 기본 AsyncCallback<?> 구현을 사용하여 GWT-RPC를 수행 할 수 있습니다.