权限管理笔记

1.匿名访问的资源不需要认证即可访问。例如:login,index等

以下是认证的关键对象:
subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统需要对subject进行身份认证。
principal:身份信息,通常是唯一的,一个主体还有多个身份信息,但是只有一个主身份。
credential:凭证信息,可以是密码,证书,指纹。
总结:主体在进行身份认证的时候需要提供身份信息和凭证信息。

3.基于用户的角色访问控制是不利于系统维护的(可扩展性不强),不推荐使用
4.基于资源的访问控制是正确的,因为资源在系统中是不变的,例如:
if(user.hasPermission("用户报表查看功能"))
{
}
如果需要变更权限只需要在分配权限模块去操作,而不需要去更改代码。

5.什么是粗粒度和细粒度权限:
粗粒度权限指的是:对资源类型的权限管理;例如:url链接,用户添加信息
细粒度权限指的是:对资源实例的权限管理;例如;用户id为004的修改链接
总结来说就是细粒度的权限管理就是数据级别的权限管理。

6.如何实现粗粒度权限管理?
粗粒度权限管理比较容易将权限管理的代码抽取出来在系统架构级别统一处理,比如:通过springmvc拦截器实现授权。
7.如何实现细粒度权限管理?
应该在系统业务逻辑层进行管理。

8.对于粗粒度的权限管理,建议使用shiro等优秀权限管理框架来实现。

你可能感兴趣的:(权限管理笔记)