我们需要在 Struts2 中定制 StrutsPrepareAndExecuteFilter 吗?
Do we need StrutsPrepareAndExecuteFilter customization in Struts2?
我们正在使用 Struts2 StrutsPrepareAndExecuteFilter
。 web.xml
中的配置为:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我们需要在这个通用拦截器中实现authentication/permission。
什么是简单的方法?我们可以创建一个扩展 StrutsPrepareAndExecuteFilter
的自定义拦截器并在其中执行我们的实现吗?
您永远不应该对 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
进行自定义。
即使它不是 final
也不像其他框架那样 package protected
,也没有必要扩展该过滤器。
您应该学习 Struts2 体系结构的基础知识。来自 Nutshell.
您可以看到基本的 Struts2 流程。 Struts2 作为一个过滤器来处理所有请求,并通过一堆利用 Struts2 框架的大部分功能和特性的拦截器将它们分派给操作。
所以如果你想添加一些像身份验证这样的特性,那么你应该首先考虑通过身份验证拦截器来扩展它。此拦截器应配置为在传入请求的每个操作上调用。在 struts2 adding interceptors in struts.xml
for all action class.
中查看它是如何完成的
后面有一个 link,您可以使用它来编写自定义拦截器以进行身份验证。参见 Is there a way to redirect to another action class without using on struts.xml
我们正在使用 Struts2 StrutsPrepareAndExecuteFilter
。 web.xml
中的配置为:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我们需要在这个通用拦截器中实现authentication/permission。
什么是简单的方法?我们可以创建一个扩展 StrutsPrepareAndExecuteFilter
的自定义拦截器并在其中执行我们的实现吗?
您永远不应该对 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
进行自定义。
即使它不是 final
也不像其他框架那样 package protected
,也没有必要扩展该过滤器。
您应该学习 Struts2 体系结构的基础知识。来自 Nutshell.
您可以看到基本的 Struts2 流程。 Struts2 作为一个过滤器来处理所有请求,并通过一堆利用 Struts2 框架的大部分功能和特性的拦截器将它们分派给操作。
所以如果你想添加一些像身份验证这样的特性,那么你应该首先考虑通过身份验证拦截器来扩展它。此拦截器应配置为在传入请求的每个操作上调用。在 struts2 adding interceptors in struts.xml
for all action class.
后面有一个 link,您可以使用它来编写自定义拦截器以进行身份验证。参见 Is there a way to redirect to another action class without using on struts.xml