java - 如何验证对 Struts2 中 JSP 页面的请求

标签 java jsp jakarta-ee struts2

可以使用拦截器验证对 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 类?

最佳答案

如果您的注意力是保护应用程序的某些部分,以便只有经过身份验证和授权使用才能访问该部分,那么您有两个选择

  1. 使用基于拦截器的身份验证
  2. 使用像 Spring-security 这样的安全 API

基于拦截器的身份验证非常简单。 here是一个如何执行此操作的示例,但不建议将此类身份验证用于基于生产和现实生活的应用程序,因为它确实是一个非常简单的案例。

如果您正在寻找一个完整的身份验证系统,我建议您看看 Spring security。它非常简单且可配置,您只需要告诉底层 spring 机制所有区域和安全标签下的哪些区域和 Spring security 将拦截它们在你的 Action 被调用之前,只有成功和授权的 Action 才会被 spring security 调用。

关于java - 如何验证对 Struts2 中 JSP 页面的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11175389/

相关文章:

java - 用于写入和读取字符串的接口(interface)

java spring websocket发送来自其他应用程序的回复

java - 我需要 JavaScript 来进行打印吗

java - eclipse/java中的嵌套项目是什么

jsp - IE自定义404错误页面无法运行JSP

java - 使用 Gson 反序列化对象数组

java - 使用 Tomcat 启动时将代码放在 Servlet 中的什么位置?

jsp - 如何部署由jsp 和servlet 制作的Web 应用程序?

java - 我在 jsp 文件中使用了 write bean 标签,但是当我尝试使用响应对象创建输出流时,它给出了 IllegalStateException?

java - JMS-分布式事务