我在这个问题中遇到了这个家伙的相反问题: Struts 2: 从 defaultStack 拦截器中排除验证方法
上述问题涉及排除所有方法,我的问题是没有排除任何方法!
我试图让我的 authenticationInterceptor 忽略我的 LoginAction 的 showLogin 方法:
<interceptors>
<interceptor name="authorizationInterceptor" class="org.companyname.struts.interceptor.AuthorizationInterceptor"/>
<interceptor-stack name="appDefault">
<interceptor-ref name="authorizationInterceptor"/>
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">ERROR</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="appDefault" />
<action name="loginInitial" class="org.companyname.struts.action.LoginAction" method="showLogin">
<interceptor-ref name="appDefault">
<param name="authorizationInterceptor.excludeMethods">showLogin</param>
</interceptor-ref>
<result name="success">/login.jsp</result>
</action>
但是,每次我转发到 loginInitial 时,拦截器都会抓住它,即使我的 showLogin 方法被排除在外。
我检查了命名问题,并尝试在操作中的拦截器引用中放置几个不同的值,但似乎没有任何效果。
当我转发到 loginIntial 时跳过授权拦截器的正确方法是什么?