struts2控制权限,请看我这样做行不行,给点意见

Action:
[code="java"]package com.ssh2.user.web.action;
public class userAction extends ActionSupport {
public String addNewUser() {
//省略
return SUCCESS;
}
}[/code]

如果一个账户有'添加新用户'功能,权限表里就存储一个字符串“com.ssh2.user.web.action.addNewUser()”,登陆时取出并且存入session

然后做'添加新用户'操作时,会进入拦截器,拦截器里取被拦截的类和方法,然后做比较,如果相同表示有权限,这样做好吗?

有没有经典一些的做法,我在这方面没经验

你这种用拦截器来实现权限管理的方式也算一种用struts2本身的优势来做,还不错

一般都是用SpringSecurity做这方面的事情,你这样设计有一个比较明显的缺陷,就是数据库中的权限设计完全和程序中的代码耦合,你代码一改,数据库马上就要跟着改

如果你查了SpringSecurity就知道是什么东西了

SpringSecurity是独立的,能解决你问题的东西你不用,偏要用struts2
[code="java"]
package com.ssh2.user.web.action;
[/code]

看着代码也不是只用struts2吧

你硬是要只用struts2做权限控制也可以,数据库这块要好好设计,比较典型是用户-角色-权限的设计,你现在拦截器里面判定的是权限,用了上面那个设计你只要判定角色就行了,好处不言而喻