2012-12-12 4 views
3

에서 각 요청에 대해 토큰의 유효성을 검사하기 위해 tokenSession 인터셉터를 인터셉터 스택에 포함 시켰습니다. 불행히도 AJAX 요청에 대해서는 제대로 작동하지 않습니다. actionInvocation.invoke()을 실행하면 invalid.token 응답을 받았습니다.Struts2의 스택에서 인터셉터 삭제

따라서 AJAX 요청 (단독)에 대한 tokenSession 인터셉터 실행을 중단하고 싶습니다. tokenSession 인터셉터 이전에 호출 된 사용자 정의 인터셉터 (로깅)가 있습니다. 요청 유형 (AJAX 요청 인 경우)에 따라 로깅 인터셉터의 스택에서 tokenSession 인터셉터를 삭제할 수 있습니까?

답변

2

토큰 인터셉터는 MethodFilterInterceptor을 확장하므로 메소드 이름에 대한 인터셉터 기반 실행을 제외 할 수 있습니다. 당신의 인터셉터 스택에서

그런를 구성 :

<interceptor-ref name="token"> 
    <param name="excludeMethods">your_ajax_methods_comma_separated</param> 
</interceptor-ref> 

또 다른 해결책은 당신이 AJAX 작업에 대해 서로 다른 인터셉터 스택을 사용하는 것입니다.

2

액션에 대해 다른 인터셉터 스택을 사용하거나 다른 패키지에 대해 다른 인터셉터 스택을 사용하고 모든 패키지를 올바른 패키지에 그룹화하십시오.

+0

+1 별도의 패키지로 작업을 그룹화합니다. –