第一章:Shiro简介

一,shiro是什么?
一个安全框架

二,shiro能干嘛?
认证,授权,加密,回话管理,与web集成,缓存。

三,对应的API

Authentication:身份认证/登录

Authorization:授权,权限认证

Session Manager:会话管理,用户登录后就是一次会话,在没有退出去之前,它的所有信息都在会话中

Cryptograhpy:加密,密码加密后才保存到数据库

Web Support:很容易集成到Web环境

Cacheing:缓存,用户登录后,用户信息,拥有的角色,权限都缓存起来

Concurrency:shiro支持多线程应用的并发验证,在一个线程中开启另外一个线程,可以把权限自动传播

Run As:允许一个用户假装为另一个用户的身份进行访问

Remember Me:记住我,


注意:Shiro不会去维护用户,维护权限,这些需要我们自己去设计


四,Shiro架构

1,Subject:主体,与当前应用交互的都是Subject
所有的Subject都绑定到SecutiryManager,和Subject的所有交互都会委托给SecurityManager。Subject可以理解为一个门面。都交给SecurityManager来执行

2.SecurityManager:安全管理器,所有和安全有关的操作都会和SecurityManager交互,
它管理所有的Subject,
它负责和其他组件进行交互,可以理解为DispatcherServlet

3,Realm:域,Shiro从Realm获取安全数据(用户,角色,权限),
也就是说SecurityManager要验证用户身份,那么它需要从Realm中获取相应的用户进行比较确定用户身份是否合法,还需要从Realm中得到用户相应的角色/权限

4.Authenticator:认证器,负责主体认证,用户也可以自定义认证策略

5.Authrizer:授权器,决定主体是否有权限进行相应的操作

6.SessionManager:用来管理session的生命周期,

7.SessionDAO:用于会话的crud, 如果我们想把session保存到数据库,可以实现自己的SessionDao,通过JDBC写到数据库。

8.CacheManager:缓存控制器,管理用户,角色,权限等缓存。

9.Cryptography:密码加密

上一篇:为什么在java中使用java.security.SecurityManager可以读取任何文件?


下一篇:java – 在SecurityManager下创建对象时的NoClassDefFoundError