要点说明
l 权限就是控制功能的使用(功能对应着URL)。
l 对功能的控制就是对URL的访问控制。
l 在我们的程序中,一个功能对应一个或两个URL:
• 1,例如列表或删除功能,只对应一个URL.
• 2,例如添加或修改功能,对应两个URL:..add, ..addUI
•
public class Privilege implements Serializable{
private Long id;
private String url;
private String name;
private String icon;
private Set<Role> roles=new HashSet<Role>();
private Privilege parent;
private Set<Privilege> children=new HashSet<Privilege>();
public Privilege(){
}
public Privilege( String name,String url, String icon, Privilege parent) {
super();
this.name= name;
this.url= url;
this.icon= icon;
this.parent= parent;
}
//省略setter、getter方法…
}
具体有哪些功能
l 初始化数据
• 权限数据。
• 超级管理员。
l 分配权限
• 给角色分配权限。
• 用户的权限就是用户所有角色的权限。
l 使用权限
• 1,登录、注销。
• 2,左侧的菜单是根据权限显示的。
• 3,右侧页面中的链接是根据权限显示的。
• 4,拦截每一个action请求,验证用户是否有权限访问。
一.初始化数据
@Component
public classInstaller {
@Resource
private SessionFactorysessionFactory;
@Transactional
public void install(){
Sessionsession=sessionFactory.getCurrentSession();
//一、超级管理员
Useruser=newUser();
user.setName("超级管理员");
user.setLoginName("admin");
user.setPassword(DigestUtils.md5Hex("666666"));
session.save(user);
//权限数据
Privilegemenu, menu1,menu2,menu3,menu4,menu5;
menu=new Privilege("系统管理",null,"FUNC20082.gif",null);
menu1=new Privilege("岗位管理","roleAction_list",null,menu);
menu2=new Privilege("部门管理","departmentAction_list",null,menu);
menu3=new Privilege("用户管理","userAction_list",null,menu);
session.save(menu);
session.save(menu1);
session.save(menu2);
session.save(menu3);
session.save(new Privilege("岗位列表","roleAction_list",null,menu1));
session.save(new Privilege("岗位删除","roleAction_delete",null,menu1));
session.save(new Privilege("岗位添加","roleAction_add",null,menu1));
session.save(new Privilege("岗位修改","roleAction_edit",null,menu1));
session.save(new Privilege("部门列表","departmentAction_list",null,menu2));
session.save(new Privilege("部门删除","departmentAction_delete",null,menu2));
session.save(new Privilege("部门添加","departmentAction_add",null,menu2));
session.save(new Privilege("部门修改","departmentAction_edit",null,menu2));
session.save(new Privilege("用户列表","userAction_list",null,menu3));
session.save(new Privilege("用户删除","userAction_delete",null,menu3));
session.save(new Privilege("用户添加","userAction_add",null,menu3));
session.save(new Privilege("用户修改","userAction_edit",null,menu3));
session.save(new Privilege("用户初始化密码","userAction_initPassword",null,menu3));
//----------------------------------------
menu= newPrivilege("网上交流",null, "FUNC20064.gif", null);
menu1= newPrivilege("论坛管理","forumManageAction_list","FUNC20064.gif", menu);