1

我想在我的Struts2.3应用程序中实现基于角色的访问控制以使其安全。

以下是我正在寻找的功能:

  1. 具有会话超时的用户身份验证和会话管理。
  2. 基于用户角色的授权。

我在这个主题上进行了很多搜索,但找不到合适的解决方案。

我已经在Struts1.2应用程序中实现了 Acegi 安全性,但没有找到在Struts2.3.

对此的任何指示都会非常有帮助。

谢谢

4

2 回答 2

2

Acegi Security现在被称为Spring Security从 2007 年开始。

您的所有问题都在这里得到解答。

该文档运行多页,因此我将为您提供有关您需要检查的主题的快速指示

用户身份验证:使用其他身份验证提供程序

会话管理:会话管理

授权:Spring Security中的Access-Control(授权)

于 2012-06-02T17:02:46.070 回答
0

身份验证:LDAP 与应用程序服务器集成是要走的路

下载openDJ,设置用户和单个组,将用户分配到组

以 glassfish 为例,设置 glassfish LDAP 域,让域指向 ldap 服务器

配置 glassfish.xml 和 web.xml。根据您的 ldap 组指定基于目录的限制,因此不同的 ldap 用户可以访问您的 Web 应用程序的不同区域

创建一个安全文件夹,将所有网页放在那些文件夹中,除了登录页面。

关键是一旦通过关键字 j_security_check 使用登录,glassfish auth ldap 允许您访问安全文件夹中的内容

缺点是 ldap 没有权限概念

用户权限:

       for well defined permission access. you have to implement on you own 

权限表包含所有权限活动

您必须已经拥有的用户表

角色表定义所有角色

角色到用户多对多关系

角色权限多对多关系

user <-->    role <-> permission

每当您想为用户执行操作时,获取当前用户名

从会话中,然后获取该用户具有的角色列表

然后获取用户角色拥有的权限

然后检查该操作,看看您是否被允许这样做。

这只是一种方法。我希望 LDAP 能给你能力

定义权限,显然它没有

于 2012-06-02T10:30:12.123 回答