1.什么是shiro
Shiro是一个基于java的开源的安全框架,可以完成认证、授权、会话管理、加密、缓存等功能
2.为什么学习shiro
在java的世界中,安全管理框架有spring security和shiro。Spring security要依赖于spring并且比较复杂,学习曲线比较高,Shiro比较简单,而且shiro比较独立,既可以在java se中使用,也可以在java ee中使用,并且在分布式集群环境下也可以使用。
3.Shiro的结构体系
Authentication:认证
验证用户是否合法,也就是登录。
Authorization:授权
授予谁具有访问某些资源的权限。
Session Management:会话管理
用户登陆后的用户信息通过Session Management来进行管理。
Cryptography:加密
提供了常见的一些加密算法,使得在应用中可以很方便的实现数据安全,并且使用很便捷。
Web suport:web应用程序支持
Shiro可以很方便的集成到web应用程序中
Caching:缓存
shiro提供了对缓存的支持,支持多种缓存架构:如ehcache,还支持缓存数据库Redis。
Concurrency:并发支持
支持多线程并发访问
Testing:测试
Run As:支持一个用户在允许的前提下使用另一个身份登录
Remember Me:在会话中记住用户的身份,所以他们只需要在强制时候登录
4.Shiro架构
Subject:主体, 可以使用户,也可以是第三方程序,subject用于获取主体信息,Principals(身份)和Credentials(凭证)
Security Manager:安全管理器,是shiro心脏(核心),由其协调管理其他组件之间的工作。
Autenticator:认证器,负责验证用户的身份(登录)
Authorizer:授权器,负责为合法的用户指定其权限,控制用户可以访问那些资源
Realms:域,用户通过shiro来完成相关的安全工作,shiro是不会去维护数据信息的,在shirp的工作过程中,数据的查询和获取工作是通过Realm从不同的数据源来获取,Realm可以获取数据库信息,文本信息等,在shiro中可以有一个Realm也可以有多个。