前言
本章学习Shiro安全框架的基本概念
方法
1.概念
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
2.为什么要学习Shiro?
在Shiro之前,已经出现了Spring Security这种安全框架,由于其需要依赖Spring和复杂性,易学性比较大。所以建议学习比较简单的Shiro,它比较独立,既可以在JavaSE中使用,也可以在JavaEE中使用,在分布式集群环境下也可使用,适用场景比较多。
在实际的项目中,每个用户都具有相应的权限,例如他需要有那些菜单,不能有哪些菜单等等。都是需要用权限进行控制的。由于手写权限控制的难度较大,所以我们选择使用别人为我们准备好的Shiro。
我们还是记一下它的图标:
3.Shiro功能体系
Authentication:认证
验证用户是否合法,说白了就是登陆。
Authorization:授权
授予谁具有访问某些资源的权限,比如菜单访问权限
Session Management:会话管理
用户登录后的用户信息通过Session Management进行管理
Cryptography:加密
使用了常见的加密算法,使得数据安全性得以保证且使用更加便捷
Web Support:Web应用程序的支持
Shiro可以很方便的集成到Web应用程序中
Caching:缓存
Shiro提供了对缓存的支持,支持多种缓存架构,如Redis
Concurrency:并发支持
提供多线程并发支持
Testing:测试,支持测试
Run As :支持一个用户在允许的条件下使用另外的身份登陆
Remember Me:记住我,提供记住用户名密码功能。
4.Shiro架构
Subject:主体,可以是用户,也可以是第三方程序等,Subject用来获取主体信息,包含用户信息以及凭证
Security Manager:安全管理器,也可以称之为Shiro的“心脏”。用来协调管理Shiro各个组件的工作。
Realms:域,Shiro通过Realms来获取用户、权限等信息进行比对校验。Shiro不会去维护这些信息,Realms包括文本信息,数据库信息等,当然实际环境中我们通常是使用RDBMS,也就是关系型数据库获取相关信息的。