基于会话属性的Spring MVC安全性
问题描述:
我正在使用基于会话属性的安全性方案。我知道Spring有Acegi Security,但我没有太多时间研究这个模块。我只是想分享这个意见征求意见。基于会话属性的Spring MVC安全性
伪代码是这样的。
-
成功登录后,我在用户会话上设置属性。我作为会话属性放置的对象是具有特权映射的简单javabean。
public class UserInfo {String 0} public String getRole(){}; public map checkPrivilege(){}; //获得者和设置者 }
会话属性包含用户的角色。 (他可以是用户/访客/管理员/超级管理员)。现在有一些授权给用户的特权。
对于我的JSP,我只是检查出他的角色和权限的用户会话。
我粗略代码是这样的使用JSTL
IF (User Info in Session is 'User' and has this privilege)
Add Button is shown
Else
No Add Button is shown.
我有以下问题:
- 被看作是安全,没有人可以嗅出或破解会话属性?
- 基于这些方案的安全性是否足够安全?
答
会话属性仅存储在服务器端,所以是的,它们是安全的。
将安全标识符置于会话属性的安全性方面没有问题。但这是Web应用程序安全性的一个简单部分!最难的部分是安全基础设施的其余部分,我担心你还没有想过。
我建议你调查Spring Security。
感谢您的快速响应。除了理解诸如在我的web.xml中分配角色(我觉得有点混乱)之外,我对安全性还没有给出足够的想法。你能分享一下我应该看看的安全基础设施的其他部分吗? – 2010-10-13 02:03:12
您将需要某种单独的授权框架,该框架将与您的定制认证框架相集成。不过,你会发现Spring Security基本上就是你正在编写的框架。为什么再这样做? – 2010-10-13 03:55:42
我诚实地不知道任何有关安全。感谢您的宝贵意见。 – 2010-10-15 06:39:00