Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。Shiro框架包含三个核心组件:
—— 来自百度百科
Subject —— 泛指当前与Shiro交互中的实体,可以是用户或者某后台进程Shiro框架还包含有其他诸多概念,为降低大家的心智负担,这些我们暂且不谈,文末会给大家推荐延展阅读的相关文章
SecurityManager —— Shiro的核心组件,对内管理各种组件实例,对外提供各种安全服务
Realm —— Shiro与安全数据之间的桥接器
这里我们用到了上上一节讲到的内容3. 接下来是Service及其实现类
这里的Mapper会辅助于后续的安全数据读取
doGetAuthenticationInfo —— 用于校验用户名及密码的合法性6. 测试用Controller创建
doGetAuthorizationInfo —— 用于赋予实体对应的角色及交互权限
login——登录方法7. ShiroConfig配置类创建,实现用户访问权限的细粒度控制
logout——登出方法
admin、user——两个测试方法,用于测试不同角色对于不同方法可访问的细粒度控制
filterChainMap.put("/user/login", "anon"); // 代表login方法可以匿名访问至此,整个接入流程便结束了
filterChainMap.put("/user/logout", "anon"); // 代表logout方法可以匿名访问
filterChainMap.put("/user/admin", "authc,roles[admin],perms[admin:read]"); // 代表admin方法需要用户满足admin角色,同时具备admin:read权限
filterChainMap.put("/user/user", "authc,roles[user],perms[user:read]"); // 代表user方法需要用户满足user角色,同时具备user:read权限
用户 admin,同时具备admin、user两种角色因此
用户 juste,仅具备user一种角色
角色 admin,同时具备admin:write、admin:read两种权限
角色 user,同时具备user:write、user:read两种权限
用户 admin,同时具备admin:write、admin:read、user:write、user:read 四种操作权限大家理清楚这其中的关系了吗?^ ^
用户 juste,同时具备user:write、user:read两种操作权限
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |