一、权限管理的定义

权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。本系统是需要进行用户的权限验证。

二、权限管理分类

从控制力度来看,可以将权限管理分为两大类:   

1,功能级权限管理;   

2,数据级权限管理。   

从控制方向来看,也可以将权限管理分为两大类:   

1,从系统获取数据,比如查询订单、查询客户资料;   

2,向系统提交数据,比如删除订单、修改客户资料。

 本系统将使用控制方向的权限进行管理。

三、权限管理技术实现

按照权限管理的力度,逐步介绍权限管理实现技术。

3.1,  功能权限管理技术实现

 功能权限管理技术,一般就使用基于角色访问控制技术RBAC(Role Based Access Control)。该技术被广泛运用于各个系统,非常容易掌握。该技术模型如下图示:

 

 

权限设置

  一般来说,系统提供如下功能:

1,角色管理界面,由用户定义角色,给角色赋权限;

2,用户角色管理界面,由用户给系统用户赋予角色。

3,系统还支持用户定义权限,这样新增功能的时候,可以将需要保护的功能添加到系统。

 

 

 

 

权限验证


   功能级的权限验证逻辑非常简单。查看该当前登录用户的角色是否包含该功能的权限。如果有,则表示有权访问,否则表示无权访问。

  对于WEB系统,一般定义一个Filter就可以完成权限验证,无需在各个程序入口进行权限判断。程序伪代码如下:

// 获取访问功能 
  String url=request.getRequestPath(); 
  // 进行权限验证 
  User user=request.getSession().get("user"); 
  boolean permit=PrivilegeManager.permit( user, url ); 
  if(permit ) { 
  chain.doFilter(request, response ); 
  } else { 
  // 可以转到提示界面 
  }