Shiro11-Shiro 整合开发-realm 授权

实现流程

  1. 我们在 Spring-shiro.xml 中配置过滤规则.

/items/queryItems.action = perms[item:query]

如果有多个权限, 用逗号分隔perms[item:query,.....]

  1. 用户在认证通过后,请求/items/queryItems.actionurl
  2. PermissionsAuthorizationFilter拦截, 拦截后发现需要item:query权限.
  3. PermissionsAuthorizationFilter 调用 realm 中的doGetAuthorizationInfo 方法.获取数据库正确权限.
  4. PermissionsAuthorizationFilteritem:query权限 和 从 realm 中获取的权限进行对比, 如果item:query在 realm 返回的权限列表中, 则授权通过.

注意: 如果授权失败会跳转到refuse.jsp页面.

    
    

问题总结

  1. 在 spring-shiro.xml 中配置过滤器链接, 需要将全部 URL 和权限对应起来进行配置, 比较麻烦.
  2. 每次授权都需要调用 realm 查询数据, 对系统性能有很大影响, 可以通过 shiro 缓存来解决.
Shiro11-Shiro 整合开发-realm 授权_第1张图片

你可能感兴趣的:(Shiro11-Shiro 整合开发-realm 授权)