Я создал перехватчик, который я хочу отобразить на некоторые конкретные методы в каком-то действии, и я не хочу нарушать существующий код:писать пользовательский перехватчик для некоторых действий, не работает
<package name="francis" namespace="/francis" extends="struts-default,json-default">
<interceptors>
<interceptor name="authentication" class="main.java.com.commdel.commons.struts2.interceptors.AuthenticationInterceptor"/>
<interceptor name="authorization" class="main.java.com.commdel.commons.struts2.interceptors.SecurityInterceptor"/>
обычай перехватчик csrf
:
<interceptor name="csrf" class="main.java.com.commdel.commons.struts2.interceptors.CsrfTokenInterceptor"/>
<interceptor-stack name="commonStack">
<interceptor-ref name="authentication"/>
<interceptor-ref name="authorization"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="commonStack"/>
<global-results>
<result name="error" type="velocity">/results/velocity/common/globalerror.vm</result>
<result name="AUTHORIZATIONERROR" type="velocity">/results/velocity/common/sessionError.vm</result>
</global-results>
отображение csrf
к некоторому действию:
<action name="addUpdateClaimHeadMetronic" class="main.java.com.commdel.francis.struts2.actions.ClaimHeadAction" method="addUpdateClaimHead">
<interceptor-ref name="csrf"/>
</action>
</package>
Используйте стопку перехватчиков в конфигурации действий. –
Если вы явно применяете какой-либо перехватчик к действию, то другие подобные по умолчанию не применяются.вы должны применять весь перехватчик самостоятельно для каждого действия для тех, кого вы использовали перехватчик csrf. – Mandy
Возможный дубликат [Перехватчик не получает вызов в Struts] (http://stackoverflow.com/questions/30043007/interceptor-not-getting-called-in-struts) –