Java 实现权限管理的两种方式(二)

2014-11-24 03:06:21 · 作者: · 浏览: 8
nager = (User) HttpUtils.getAdminUserSession(req);
// 检查管理用户是否登录
if (manager == null) {
resp.sendRedirect(req.getContextPath()+"/sessionLost.do");
return;
}

//第二,必须在权限定义范围内
if(auth_value.indexOf("all")>=0){
chain.doFilter(request, response);//必须返回给上一层。
return ;
}
else{
// String currUserAuth = ","+Integer.toString( manager.getLever())+",";
String currUserAuth = Integer.toString( manager.getLever());
if(auth_value.indexOf(currUserAuth)>=0){
chain.doFilter(request, response);//必须返回给上一层。
return ;
}
else{
resp.sendRedirect(req.getContextPath()+"/accessdenied.do");
return ;
}
}
}


public void destroy() {
logger.info("in authfilter destroy");


}


}
2.xml文件


xml只给出了部分内容,不过所有的内容都包括了。


< xml version="1.0" encoding="UTF-8" >



0,1
0,
0,1

all,
all,


3.用户表里面有一个用来保存用户级别的字段level,具体用户表的信息有以下内容,我用实体类来表示用户表的信息,因为没有表结构了。


/** The composite primary key value.*/
private String id;

/**
* 用户编号
*/
private String userId;


/** The value of the simple username property. */
private String username;


/** The value of the simple password property. */
private String password;
/**
* 0:Admin;1:站长;2:编辑;
*/
private int lever=1;
/**
* 创建用户的日期
*/
private Date createDate;


所有的操作都显示在页面上,当点击该操作时,才进行权限控制,抛出是否该用户有没有该功能的权限。


第二种方式:利用专门的权限表来维护用户权限,根据登录的用户的权限信息判断谋个功能是否显示在页面上,来实现权限的控制。


1.不用数据库表了,我用实体类的属性来表示。


private String id;
/**
* 管理员id
*/
private String employeeid;
/**
*管理功能id
*/
private String urlid;
/**
* 功能名称
*/
private String urlname;


超级管理员给每一个用户分配权限,然后添加到该张表中。登录用户根据自己的权限可以判断是否显示该功能。