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串有权限,否则 没有权限,抛出异常。

  • 相关阅读:
    PHP与Web页面的交互
    PHP数组和数据结构(下)未完。。。。
    PHP数组和数据结构(上)
    网络
    单列模式(饿汉模式和懒汉模式)
    C++动态内存管理
    基础I/O
    进程程序替换(自主实现shell)
    进程控制
    调研task_struct结构体
  • 原文地址:https://www.cnblogs.com/zhangxianming/p/8656851.html
Copyright © 2011-2022 走看看