当前位置:   article > 正文

shiro——SecurityManager、shiro架构原理_shiro securitymanager

shiro securitymanager

1. SecurityManager 

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

看看上面这张图和源码,在shiro-core核心包里,SecurityManager管理着认证、授权、会话管理,至于如果还想用到缓存管理等等功能,那就要另外引入shiro对应的jar包。

再看看Manager的继承关系:

层层继承、层层实现。越往下面的Manager,功能越多,没一个Manager都代表了一种功能:缓存、Realm、认证、授权、会话、默认的、web。个人认为,我们利用Factory工厂实例化SecurityManager时,就是用的默认Manager(DefaultSecurityManager)。

在看看认证使用的是什么? 默认用的是ModularRealmAuthenticator类,所以无需设置SecurityManager的authenticator:

2、架构原理

2.1 Subject

首先将一个用户抽象为一个Subject对象,通过调用对象里的方法来实现对用户的认证、授权、会话、缓存等等的操作。

比如:subject.hasRole()、subject.checkPermission()等等。

2.2 SecurityManager

这是一个核心组件,Subject调用的操作,基本都由SecurityManager去处理并作出相应的回应,所以正如图中一样,SecurityManager管理着很多功能模块,SecurityManager是个接口,每一个功能模块都对应着一个自己的Manager,这样使得shiro框架的代码结构清晰有条理。

具体的认证器、授权器、会话管理器等等这些组件,都有自己的默认实现、默认配置。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/534020
推荐阅读
相关标签
  

闽ICP备14008679号