我是靠谱客的博主 平常战斗机,最近开发中收集的这篇文章主要介绍Shiro的应用深入学习基于url的权限管理流程Shiro的认证流程Shiro的授权流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

     上一篇中宏观上分享了Shiro的原理,今天将分享基于url的权限认证授权,以及Shiro的认证与授权的原理和流程

基于url的权限管理流程

                                    

优点:

  使用基于url拦截的权限管理方式,实现起来比较简单,不依赖框架,使用web提供filter就可以实现。

问题:

  需要将所有的url全部配置起来,有些繁琐,不易维护,url(资源)和权限表示方式不规范。

Shiro的认证流程

                                                                  
执行流程:

     1、通过ini配置文件创建securityManager

     2、调用subject.login方法主体提交认证,提交的token

     3、securityManager进行认证,securityManager最终由ModularRealmAuthenticator进行认证。

     4、ModularRealmAuthenticator调用IniRealm(给realm传入token) 去ini配置文件中查询用户信息

     5、IniRealm根据输入的token(UsernamePasswordToken)从 shiro-first.ini查询用户信息,根据账号查询用户信息(账号和密码)

     如果查询到用户信息,就给ModularRealmAuthenticator返回用户信息(账号和密码)

     如果查询不到,就给ModularRealmAuthenticator返回null

     6、ModularRealmAuthenticator接收IniRealm返回Authentication认证信息

      如果返回的认证信息是null,ModularRealmAuthenticator抛出异常(org.apache.shiro.authc.UnknownAccountException) 

       如果返回的认证信息不是null(说明inirealm找到了用户),对IniRealm返回用户密码 (在ini文件中存在)和 token中的密码 进行对比,如果不一致抛出异 常(org.apache.shiro.authc.IncorrectCredentialsException

注意:

        ModularRealmAuthenticator作用进行认证,需要调用realm查询用户信息(在数据库中存在用户信息)

        ModularRealmAuthenticator行密码对比(认证过程)。

        realm:需要根据token中的身份信息去查询数据库(入门程序使用ini配置文件),如果查到用户返回认证信息,如果查询不到返回null

Shiro的授权流程

                                            
执行流程:

         1、对subject进行授权,调用方法isPermitted"permission"

         2SecurityManager执行授权,通过ModularRealmAuthorizer执行授权

         3ModularRealmAuthorizer执行realm(自定义的CustomRealm)从数据库查询权限数据

调用realm的授权方法:doGetAuthorizationInfo 

        4realm从数据库查询权限数据,返回ModularRealmAuthorizer

        5ModularRealmAuthorizer调用PermissionResolver进行权限串比对

        6、如果比对后,isPermitted"permission"realm查询到权限数据中,说明用户访问permission串有权限,否则没有权限,抛出异常。


     另外在web系统中,shiro也通过filter进行拦截。filter拦截后将操作权交给spring中配置的filterChain(过虑链儿),shiro提供很多filter。

    

最后

以上就是平常战斗机为你收集整理的Shiro的应用深入学习基于url的权限管理流程Shiro的认证流程Shiro的授权流程的全部内容,希望文章能够帮你解决Shiro的应用深入学习基于url的权限管理流程Shiro的认证流程Shiro的授权流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部