码迷,mamicode.com
首页 > 其他好文 > 详细

Shiro-SecurityManager解析

时间:2021-02-02 11:05:27      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:creates   ade   one   功能   col   token   组件   real   authorize   

架构图/类图

技术图片

==================================================================================================

技术图片

解析

1)接口定义

public interface SecurityManager extends Authenticator, Authorizer, SessionManager {
    Subject login(Subject var1, AuthenticationToken var2) throws AuthenticationException;
    void logout(Subject var1);
    Subject createSubject(SubjectContext var1);
}

Authenticator、Authorizer、SessionManager都是shiro中另外几个组件。Authenticator是认证器,负责认证功能;Authorizer是鉴权器,负责权限鉴定功能;SessionManager负责session管理功能。

2)架构原理

类作用

  • CacheSecurityManager
    抽象类注入了缓存相关

  • RealmSecurityManager
    该类注入了和数据源有关的

  • AuthenticatingSecurityManager
    该类实现了认证的部分功能,支持使SecurityManager封装为Authenticator实例,将验证对象的操作委托给该实例

  • AuthorizingSecurityManager
    该类仅仅为间接继承,并未实现任何接口,完成了授权的部分功能

  • SessionSecurityManager
    该类注入了会话管理器,单纯的继承,没有实现。支持SecurityManager封装SessionManager实例,把session操作都委托给该实例

  • DefaultSecurityManager
    这个抽象类是非web环境的安全管理器,只是单纯的继承,没有实现

  • DefaultWebSecurityManager
    这个抽象类默认的继承web层次的安全管理器,除了继承之外,还实现了一个接口,这个接口的功能就是判断当前是否是web环境

总结

  1. SecurityManager默认实例的是DefaultSecurityManager

  2. 如果我们在shiro.ini配置文件配置了[Users]的话那么会自动创建IniRealm

  3. 创建的IniRealm会被绑定到SecurityManager对象中,并且会将账号密码保存到SimpleAccountRealm的User集合中,认证的时候会从此对象中获取

参考文章

shiro SecurityManager详解
shiro中的SecurityManager分析
shiro——SecurityManager、shiro架构原理

Shiro-SecurityManager解析

标签:creates   ade   one   功能   col   token   组件   real   authorize   

原文地址:https://www.cnblogs.com/lifelikeplay/p/14357328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!