可以使用拦截器验证对 Action 的请求。此外,使用空操作声明可以避免直接请求 JSP 页面。是这样的;
<action name="home" >
<result>home.jsp</result>
</action>
我想验证对 JSP 页面的调用。因为我觉得一个简单的方法可以添加一个带有 Interceptor
的 Action (ActionSupport
) 来检查操作名称(并使用 session 等进行一些验证)。但是我怀疑它是否会降低性能,因为那个 Action 类什么都不做,只是执行它的 execute()
而已(无用的任务......),而且应该在哪里一个空 Action 。(但是:正如我在 Struts2 上阅读的一些文档,据说即使我们不添加 Action 类,框架本身也会添加和返回“成功”的 Action 类因此,添加或不添加 Action 类,不会影响新)
无论如何,我想知道您验证或授权访问某些 JSP 页面的最佳方法是什么。(页面数量可以很多.. 不仅仅是一个 jsp 页面)
添加:
示例:
比方说,有些受限制的页面是所有用户都无法访问的,例如用户的帐户页面只能由登录用户访问。可以有更多此类页面。如果请求到达这样的页面,则必须验证用户。然后,如果请求来自空/匿名操作(如上面代码片段中所述 - 仅操作名称 - 无真实类)如何验证此类请求以JSP 页面?是否应该为此使用 Action 类?
最佳答案
如果您的注意力是保护应用程序的某些部分,以便只有经过身份验证和授权使用才能访问该部分,那么您有两个选择
- 使用基于拦截器的身份验证
- 使用像 Spring-security 这样的安全 API
基于拦截器的身份验证非常简单。 here是一个如何执行此操作的示例,但不建议将此类身份验证用于基于生产和现实生活的应用程序,因为它确实是一个非常简单的案例。
如果您正在寻找一个完整的身份验证系统,我建议您看看 Spring security。它非常简单且可配置,您只需要告诉底层 spring 机制所有区域和安全标签下的哪些区域和 Spring security 将拦截它们在你的 Action 被调用之前,只有成功和授权的 Action 才会被 spring security 调用。
关于java - 如何验证对 Struts2 中 JSP 页面的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11175389/