• shiro认证


    一、通过ini文件初始化一个用户

    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)

    二、当用shiro的认证方法时,我们需要从写shiro的realm。

    realm叫做域,可以将它理解为数据库。

    /**
    * 认证方法
    * 当 Subject 调用 login 方法时, 即会触发当前的 doGetAuthenticationInfo 方法. 且把
    * UsernamePasswordToken 对象传入, 然后再该方法中执行真正的认证: 访问数据库进行比对.
    */

  • 相关阅读:
    深入理解计算机系统第二版习题解答CSAPP 2.2
    深入理解计算机系统第二版习题解答CSAPP 2.1
    oracle 关闭回收站
    在Razor标记内写入文本
    MVC5+EF6 入门完整教程8_1:实体数据模型
    MVC5+EF6 入门完整教程9:多表数据加载
    MVC5+EF6 入门完整教程8:EF6 Code First 数据迁移
    SQL Linq Lambda
    web及H5 的链接测试
    web安全测试之一
  • 原文地址:https://www.cnblogs.com/beijingstruggle/p/5879340.html
Copyright © 2020-2023  润新知