JAVA权限管理问题

X654054668 2011-11-12 10:09:57
用的框架 ssh2 菜单可以正常的生成,在struts2拦截器中 只判断了下 session是否为空,但是这样 当一个 权限很小的用户登录成功之后,也可以通过URL手动输入的形式来访问其他的页面,请求解决的方法。
...全文
311 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangshiyang 2011-11-14
  • 打赏
  • 举报
回复
这个就要创建filter了! 对每个url请求进行过滤! 这都是必须做的!
  • 打赏
  • 举报
回复
创建“角色表”,“页面表”,“页面角色表”,“用户表”,“用户角色表”

一个用户对应一个或多个角色,一个角色可以访问一个或多个页面。。

在拦截器中判断这个用户的角色是否能访问当前的页面就行了。。
albert_lz 2011-11-14
  • 打赏
  • 举报
回复
用过滤器,给你参考下:
public class CheckPrivilegeInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
if (invocation.getAction() instanceof LoginLogoutAction) {// 登录时
return invocation.invoke();
}
User user = (User) ActionContext.getContext().getSession().get("user");// 当前登录用户
String namespace = invocation.getProxy().getNamespace();
String actionName = invocation.getProxy().getActionName();
String privilegeURL = null;
if (namespace == null || "/".equals(namespace)) {
namespace = "";
}
if (actionName.endsWith("UI")) {
String _actionName = actionName.substring(0, actionName.length() - 2);// 去掉“UI”
privilegeURL = namespace + "/" + _actionName + ".action";
} else {
privilegeURL = namespace + "/" + actionName + ".action";
}

if (user == null) { // 如果未登录,转到登录页面
return "loginUI";
} else {
if (user.hasPrivilegeByURL(privilegeURL)) {// 有权限
return invocation.invoke();
} else {
return "error_privilege";
}
}
}
}
D1000 2011-11-14
  • 打赏
  • 举报
回复
自定义一个拦截器或Filter 每次请求前看看session是否存在,如果存在从session中取出用户所具有的权限 符合权限的才让他访问(前提是session中要保存一下他的权限)
romanitc 2011-11-14
  • 打赏
  • 举报
回复
我的权限没用到session、cookie那些!
zouyang2005 2011-11-14
  • 打赏
  • 举报
回复
用户在登录的时候,查出用户所有具有的权限,放入到session中,然后在过滤器中根据当前要访问的页面所在的模块来判断是否在权限范围之类,至于有很多的JSP页面,你可以JSP页面划分在不同的模块就可以了
KG071 2011-11-13
  • 打赏
  • 举报
回复
自定义一个拦截器或Filter 每次请求前看看session是否存在,如果存在从session中取出用户所具有的权限 符合权限的才让他访问(前提是session中要保存一下他的权限)
hongkiton 2011-11-13
  • 打赏
  • 举报
回复
这跟你的拦截器有关系,但是更重要的是系统的设计问题,如果是RBAC的设计的话,在拦截器里面就可以查询某个用户的所有权限,如果不具有这个权限直接拦截下来。

如果你们的系统不是RBAC的话恐怕就很麻烦了,因为很难查找用户的权限


说实话,这些问题其实不叫问题,在中国,用户不会去直接在地址栏输入自己不知道的东西的。要看你们做的是什么系统了,安全性不高的话其实没什么问题
coooliang 2011-11-13
  • 打赏
  • 举报
回复
Filter ,把受限页面放在一个文件夹里面,然后让他过滤整个文件夹
cscxxx 2011-11-12
  • 打赏
  • 举报
回复
用session存放用户权限相关数据
追风筝的孩子 2011-11-12
  • 打赏
  • 举报
回复
给他一个cookie,在需要权限的地方先获取cookie判断他是否有资格进入。。。或者把他的用户名放在session中
ilywhax 2011-11-12
  • 打赏
  • 举报
回复
可以考虑下aop切面来控制下看下。。。。
X654054668 2011-11-12
  • 打赏
  • 举报
回复
是的 菜单的关系 有的 但是 用户在用一个帐号登录之后 就session不为空了 之后就可以 手动的通过 URL来输入别的地址来访问了
这要怎么判断 拦截下啊

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧