zoukankan      html  css  js  c++  java
  • shiro 认证和授权原理

    一、认证原理

    1、subject(主体)请求认真,调用subject.login(token)

    2、SecurityManager (安全管理器)执行认证

    3、SecurityManager通过ModularRealmAuthenticator进行认证。

    4、ModularRealmAuthenticatortoken传给realmrealm根据token中用户信息从数据库查询用户信息(包括身份和凭证)

    5realm如果查询不到用户给ModularRealmAuthenticator返回nullModularRealmAuthenticator抛出异常(用户不存在)

    6realm如果查询到用户给ModularRealmAuthenticator返回AuthenticationInfo(认证信息)

    7ModularRealmAuthenticator拿着AuthenticationInfo(认证信息)去进行凭证(密码 )比对。如果一致则认证通过,如果不致抛出异常(凭证错误)。

    二、授权原理

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

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

    3ModularRealmAuthorizer执行realm(自定义的CustomRealm)从数据库查询权限数据调用realm的授权方法:doGetAuthorizationInfo

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

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

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

  • 相关阅读:
    [Leetcode]Linked List Cycle
    [Leetcode]Excel Sheet Column Number
    [Leetcode]Unique Binary Search Trees
    [Leetcode]Same Tree
    同时访问内外网设置路由信息
    希腊字母表示及读音
    jni入门
    查看某个进程运行时间的几种方法
    企业级hbase HA配置
    存在单点故障的namenode宕机恢复测试
  • 原文地址:https://www.cnblogs.com/zhangxianming/p/8656851.html
Copyright © 2011-2022 走看看