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















网友评论