shiro安全框架流程:
1.Apache Shiro (更轻量, 使用更简单, 并不完全依赖 spring,可以独立使用 ),Spring Security (使用复杂, 依赖 Spring)
2.体系结构分为6大类:
Authentication 认证 ---- 用户登录,身份识别 who are you
Authorization 授权 --- 用户具有哪些权限、角色 what can you do
Cryptography 安全数据
Session Manaement 会话
Web Integration web 系统集成
Interations 集成其它应用,spring、缓存
3.使用:
在maven的pom。xml中引入坐标,依赖(dependency);Shiro-All
Shiro运行流程:
ApplicationCode 用户编写
Subject 就是 shiro 管理的
SecurityManager 安全管理器,是 shiro 权限控制核心对象,在编程时,只需要操作Subject 方法, 底层调用 SecurityManager 方法,无需直接编程操作 SecurityManager
Realm 应用程序和安全数据之间连接器 ,
4.四种主要方式:
1、 在程序中 通过 Subject 编程方式进行权限
2、 配置 Filter 实现 URL 级别粗粒度权限控制
3、 配置代理,基于注解实现细粒度权限
4、 在页面中使用 shiro 自定义标签实现 页面显示权限
用户登录功能的实现:
在web.xml中配置 ShiroFilter,用/*拦截所有请求
applicationContext-shiro.xml 中配置shiroFilter的bean文件
anon 未认证可以访问
authc 认证后可以访问
perms 需要特定权限才能访问
roles 需要特定角色才能访问user 需要特定用户才能
user 需要特定用户才能
最后在配置一个安全管理器 SecurityManager
基本上的配置就完成了
数据库最少需要的5张表结构
权限表,角色表,权限角色表,用户表,用户角色关系表