Shiro
一、介绍
1.Shiro:是一种Java安全框架,用于全面的身份验证,授权,加密和会话管理解决方案。
2.谁负责在登录期间获取用户数据(用户名和密码,角色和权限等),以及谁在运行时实际执行这些安全性检查呢?” Shiro调用了一个Realm,并将其Realm插入Shiro的配置中。
二、功能
1.安全认证
简单实现:
jdbcrealm :从mysql中读取数据(用户信息登陆,固定字段名)
数据源:可以采用c3p0
配置文件:里面【main】代码段 【users】用户段
jdbc_realm.ini($:引用对象 点:相当于方法setXX)
2.授权(包含 用户,角色,权限-----角色是权限的集合)
授权方式:
- 编程式授权例子:
给用户赋予角色(Role1 ,role2代表用户拥有的角色)
Has 和check的区别:has 返回boolean ,check直接检查,不符合直接报错,正确无信息。
给角色赋予权限
-
注解式授权
-
JSP标签
4. 关联web
解释:
1.Urls 是当访问这个url时,必须满足后面的用户要求(anon代表所有用户)
2.若直接访问admin,会进行authc认证,在main中会进行authc.loginUrl意思就是若未登录则跳转到/login.
3.若访问/student,必须具有teacher的角色才能访问。
4.若访问teacher ,必须具有user:create权限才能访问。
URL匹配:
5.自定义realm
开发中,数据都是从数据库中获取,而不是配置文件,所以需要自定义realm
自定义realm:登陆的时候,将用户的的权限,角色赋值给用户
6. Shiro加密:
一些自带的加密方法
7.shiro特性
Remember me 低层也是Cookie
8.整合Spring