Shiro 权限管理

一共5个表

  • 用户表
  • 角色表
  • 权限表
  • 用户角色中间表
  • 角色权限中间表

权限验证

  • 通过角色来判断有没有权限。 比如 if 用户有在用户角色中间表中有经理的角色, 就可以查看工资。这中判断比较笼统。适合比如实现不同的角色登录以后看到不同的菜单。
  • 通过权限标识来判断, 这个就需要查出用户拥有的具体权限。 这个权限控制比较细致。
    适合细致的,比如部门公司的管理员,只能修改该部门下的员工资料。

Shiro 要点

  • Subject:主体,代表了当前“用户
  • SecurityManager:安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;可以看出它是Shiro的核心
  • Realm:域,Shiro从从Realm获取安全数据(如用户、角色、权限)
  • 最简单的一个Shiro应用:

1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager;

2、我们需要给Shiro的SecurityManager注入Realm,从而让SecurityManager能得到合法的用户及其权限进行判断。

Shiro 授权流程

  • 1、首先调用Subject.isPermitted接口

  • 2 调用相应的Realm获取主题相应的角色/权限;

  • 3、Authorizer会判断Realm的角色/权限是否和传入的匹配,如果有多个Realm,会委托给ModularRealmAuthorizer进行循环判断,如果匹配如isPermitted会返回true,否则返回false表示授权失败。

猜你喜欢

转载自blog.csdn.net/h356363/article/details/93530402