java - 如何在 Struts2 web 应用程序中为多个登录配置 web.xml?

标签 java authentication struts2 web.xml

我想使用 Struts2 和 JSP 开发一个小型测试多登录应用程序。基本上:

  1. 应用程序应该有任何人都可以访问的欢迎页面(即 index.jsp)。

  2. 此欢迎页面将有两个登录框:一个用于用户,一个用于管理员。

  3. Web 应用程序应该有两个子应用程序,一个用于用户,一个用于管理员。换句话说,它不是登录用户拥有不同权限的单一应用程序。每个子应用程序都有自己独立的页面集。

Struts2 使用 MVC 模式,我想知道我应该如何使用过滤器模式来组织它。我可以让 /userapp/* 下的所有请求都转到用户应用程序,而 /adminapp/* 下的所有请求都转到管理应用程序。

我的问题是:

  1. 这是正确的策略(即最佳实践)吗?如果是,我应该如何在我的 web.xml 中实现它?

  2. 我应该实现两个过滤器和两个映射(如果是,为什么?)还是应该实现一个过滤器和两个映射?

更新

经过大量阅读,我了解到 Struts2 多登录是一个过度设计且过于繁重的解决方案,无法满足我的需求。我决定实现我自己的 Servlet 3.0 并使用 JQuery + Ajax。

最佳答案

考虑这样一种情况,其中有 2 个不同的用户“管理员”(最高权限)和“客户(与管理员相比权限较低)”。在Struts中,你可以这样实现

1.创建一个类似User类的业务逻辑,它基本上完成以下任务

  a.)Gets the username,password as input.
  b.)Checks whether this 'username' exists in database.
  c.)If exits, gets the type of user(either Admin or Customer) and checking 
     its corresponding password.

2.从“Action”类中使用此“User”对象。因此,您将“ActionForm”值(用户名、密码)传递到此业务方法中,验证用户并获取特定的用户类型(存储在 session 中) .

3.在此“用户”发出的后续请求中,检查用户类型并相应地转发。创建一个自定义“操作”类,该类始终验证从用户类型接收到的每个操作的用户类型(和其他验证)。 所有其他“Action”类都应扩展此自定义“Action”类。

这就是我在我的一个 Struts Web 应用程序中实现的方式,其中超过 3 种类型的用户具有不同的权限。我从未见过每种用户类型的单独 url 模式。所以最好显示, http://www.yoursite.com/Process.action 而不是 http://www.yoursite.com/adminapp/Process.action

关于java - 如何在 Struts2 web 应用程序中为多个登录配置 web.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557083/

相关文章:

java - 正则表达式跨越两行,仅在单独的行上匹配

php - 在 PHP 登录脚本中使用 session 和 session 变量

Android Facebook 和 Google+ 离线登录

struts2 - 如何在jsp中使用open Id

java - Struts 2 从 DAO 获取 Json 进入 Action 类

调用 pkzip 的 Java 进程需要很长时间才能压缩

java - 从2.2.0版本开始,JMX控制台中不显示Spring执行器指标

java - 用户类别信息

ruby-on-rails - 使用http基本身份验证和restful_authentication插件注销

java - 资源...不可用