Shiro 入门

Apache Shiro简介

Apache Shiro:http://shiro.apache.org/download.html

是一个安全框架,Shiro可以用于SE、EE环境。

Shiro能干嘛:认证、授权、加密、会话管理、与WEB集成、缓存、测试、并发、记住我、运行方式。

API功能图:

Shiro 入门

下面对如中API组件进行解释:

主要功能:

Authentication:身份认证登录

Authorization:授权访问控制的过程,即确定“谁”可以访问“什么”。

Session Management: 会话管理,用户登录后就是一次会话,在没有退出之前用户的所有信息都在session中。会话可以在SE、WEB环境中。

Cryptography:加密存储到数据库。

Web Support:web支持,用户web集成。

支持功能:

Caching:缓存

Concurrency: 多线程应用的并发验证,例如:线程1开启线程2,接着线程1可以将权限传给线程2。

Testing: 单元测试、集成测试

“Run As”:允许用户假定其他用户的身份(如果允许)的功能,有时在管理方案中很有用。

“Remember Me”:记住用户在会话中的身份,下次就不用登录。

注意:Shiro不会去维护用户、权限;这些需要我们自己设计,并通过相应的接口注入给Shiro即可。

Apache Shiro架构

在最高概念层面,Shiro的架构有3个主要概念:和SubjectSecurityManagerRealms

Shiro 入门

Subject:指一个抽象的用户,所有Subject都绑定到SecurityManager中去,与subject的所有交互都会委托给SecurityManager。

SecurityManager:执行者,所有有关安全的操作都会交由SecurityManager进行管理,负责与其他组件进行交互。

Realms:域,充当Shiro与应用程序安全数据之间的“桥梁”或“连接器”。shiro从realms中获取安全数据(角色、权限等),例如SecurityManager要进行验证身份,则Realms需要对用户进行身份比较看是否合法,充当安全数据源。

官方文档中的解释:

Shiro 入门

详细架构

Shiro 入门

Subject (org.apache.shiro.subject.Subject)

SecurityManager (org.apache.shiro.mgt.SecurityManager)

Authenticator (org.apache.shiro.authc.Authenticator)

认证器,可以自定义,认证器需要认证策略。

       Authenticator (org.apache.shiro.authc.Authenticator)

      认证策略就是满足什么情况才能让用户通过。

Authorizer (org.apache.shiro.authz.Authorizer)

认证策略就是满足什么情况才能让用户通过。

SessionManager (org.apache.shiro.session.mgt.SessionManager)

管理session生命周期,Shiro能够在任何环境中本地管理用户Sessions,如果有多个环境,则可以自己定义分布式session。

       SessionDAO (org.apache.shiro.session.mgt.eis.SessionDAO)

       数据的访问对象,进行session的CRUD,SessionDAO中可以使用缓存。

CacheManager (org.apache.shiro.cache.CacheManager)

缓存控制器,管理用户的角色、权限等信息的缓存。

Cryptography (org.apache.shiro.crypto.*)

密码模块
Realms (org.apache.shiro.realm.Realm)

 

了解SecurityManager功能仍然很重要,尤其是在为应用程序配置功能时。

温馨提示

关注我的公众号【Java剑主】,学习更多有深度的技术文章。本博客不在记录原创博文,请移步公众号获取最新内容。

修道注重根基,熟透原理方能看透事物本质,编程亦如此! Java修炼之道,道心坚不移!踏剑寻梦,不忘初心!

Shiro 入门