shiro配置流程
- web.xml中配置shiro的filter
- spring中配置shiro的过滤器工厂,指定对不同地址权限控制
, 传入安全管理器 - 配置安全管理器,传入realm,realm中定义具体授权和认证的流程
- 配置自定义凭证匹配器,指定token和info的匹配方式。
权限访问的配置
定义所有的权限的String集合
在自定义realm中重写doGetAuthoriaztionInfo(),创建所有权限的String集合,
创建SimpleAuthorizationInfo的对象,调用addStringPermission,添加权限的集合,返回该对象- 控制访问指定资源时所需要的权限
a. 用代码校验。
//拿到当前的subject
Subject subject = SecurityUtils.getSubject();
//检查是否具有指定权限
subject.checkPermission("部门管理");b. 在过滤器工厂中配置拦截地址
/system/user/list.do = perms["部门管理"]
/system/user/list.do = authc,roles[用户管理]c. 注解实现
@RequiresPermissions("用户管理") - 使用shiro标签对视图渲染进行控制
<shiro:hasPermission name="用户管理">
用户管理数据
</shiro:hasPermission>