Удалить перехватчик из стека в Struts2

В struts.xml я включил перехватчик tokenSession в свой стек перехватчиков для проверки токена для каждого запроса. К сожалению, то же самое не работает для запросов AJAX. Я получил ответ invalid.token, когда он выполняет actionInvocation.invoke().

Следовательно, я хотел бы прекратить выполнение перехватчика tokenSession для запросов AJAX (отдельно). У меня есть собственный перехватчик (ведение журнала), который вызывается до перехватчика tokenSession. Можно ли удалить перехватчик tokenSession из стека в перехватчике регистрации на основе типа запроса (если это запрос AJAX)?


person Phoenix    schedule 12.12.2012    source источник


Ответы (2)


Используйте другой стек перехватчиков для своего действия или используйте разные стеки перехватчиков для разных пакетов и сгруппируйте все действия в правильный пакет.

person Andrea Ligios    schedule 12.12.2012

Токен-перехватчик расширяет MethodFilterInterceptor, что означает, что вы можете исключить выполнение перехватчиков на основе имен методов.

В стеке перехватчика настройте его следующим образом:

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

Другим решением является использование другого стека перехватчиков для ваших действий AJAX.

person Aleksandr M    schedule 12.12.2012