【发布时间】:2014-01-08 08:15:20
【问题描述】:
我正在开发一个遗留应用程序(struts 1.1 在 jdk 1.4 中运行,tomcat 6),需要有关实施基于用户角色的安全性的建议。
用户 u1 具有读/查看权限,而用户 u2 对某些操作具有写权限。例如
用户 u1 的网址:
(显示DB中key 12相关的内容)。
用户 u2 的网址:
(它基本上在 DB 中为键 12 插入音符值)
假设如果拥有查看权限的用户 u1 知道 u2 使用的 url,他可以为特定的 key 插入任何恶意值,这是他不应该做的。
虽然基于角色的struts动作类的访问已经到位,但这里两个用户使用的动作类是相同的,唯一的区别是url参数。
现在我必须解决这个问题,它分布在数千个动作类中。因此,在每个动作类中添加检查条件是不可行的。
我正在考虑编写一个过滤器类,它将从配置文件中读取用户角色和允许的请求参数(可能的值,例如 action='save' action='view')。
有没有替代的解决方法?
【问题讨论】:
-
看看Spring Security - 它允许您使用任何您喜欢的身份验证机制将角色映射到 URL。
-
@MattR 添加新技术将是最后的选择,如果我使用 Sprint,是否需要将整个用户角色管理系统移植到 Sprint 安全性中?
-
您可以使用您现有的用户/角色,您需要进行大量配置,以及查找现有用户的UserDetailsService 的实现。