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