手记

Shiro 架构,看这篇就够了

Shiro 是一个简洁,易用的安全框架。
Shiro 架构有三个基本的概念: Subject, SecurityManager and Realms。

High Level 架构

Subject,

实际就是我们通常所指的用户,但是,为什么不用User 呢, 这是因为User,我们通常理解为实际的用户, 而用Subject则表示Shiro面向的可以是一个实际用户,也可能是第三方的服务,系统,或者Job等。

每个Subject实例都会绑定对应的SecurityManager。

SecurityManager

是整个Shiro的核心。典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。

Realms

Realms 是一个连接Shiro和应用程序安全数据之间的"桥梁"。当进行鉴权和授权的时候,Shiro会查询一个或者多个Realms。Shiro提供一些默认的Realm,例如LDAP, JDBC和INI文件中。

详细架构

  1. Authenticator, 鉴权, 登录的时候检查是否能登录
    Authentication Strategy, 对于多个Realm的情况,需要一个策略来决定用户是否可以登录。例如,一个Realm能通过,但是另一个Realm鉴权失败,用户可否登录?
  2. Authorizer, 授权 ,访问控制,表示一个用户可以做什么操作,不可以做什么。

所以我们可以看到,鉴权的过程是:

而授权的过程是:

4人推荐
随时随地看视频
慕课网APP