说在前面:
一、我们将使用的API记住
IniSecurityManagerFactory : 用于加载配置文件,创建SecurityManager对象
SecurityManager :就是整个Shiro的控制对象
SecurityUtils :SecurityManager 工具类,用于获得Subject对象
Subject :身份类
UsernamePasswordToken: 身份信息构建类 (Token 令牌)
AuthorizingRealm :支持校验与授权的Realm
AuthenticationInfo :校验成功返回的信息的父类
SimpleAuthenticationInfo :校验成功返回信息类
AuthorizationInfo 授权成功返回的信息类的父类
PrincipalCollection 授予是获得验证信息的类
SimpleAuthorizationInfo 授权成功返回的信息类的实现类
Md5Hash : Md5加密类
ByteSource : 用于构造Md5加盐的类。
HashedCredentialsMatcher :Md5算法校验器,用于支持Md5校验
二、入门实例
1.入门实例
①导包
②在src下创建shiro.ini配置文件
③创建测试类
a、使用IniSecurityManagerFactory读取配置文件,并通过SecurityManager创建一个操作shiro控制对象的实例
b、通过SecurityUtils获得一个身份对象,需要先setSecurityManager
c、通过UsernamePasswordToken设置参数,再通过SecurityManager实例的login登陆验证
三、权限验证
说在前面:Shiro是通过Realm机制,实现将配置文件的校验用户信息存放在数据库、LDAP等数据存储系统里面。
首先我们先进行简单的权限验证
1.创建MyRealm类,继承AuthorizingRealm,重写其中的doGetAuthenticationInfo方法,返回info
①判断如果用户名和token(页面传过来)中的值是否相等,相等返回验证信息SimpleAuthenticationInfo
②修改shiro.ini配置文件:
四、shiro加密算法
1.创建md5测试类,
2.修改MyRealm中的代码
3.修改shiro.ini配置文件支持MD5算法
五、使用pojo获取返回对象
1.创建pojo类,有id、name、pwd基本属性
2.修改myrealm中的代码
3.在shirotest中测试:将获取的对象信息强转成pojo对象
注意返回的校验对象:
1.principal : 返回的验证通过后信息, 接收方通过subject对象接收
2.credentials:设置密码
3.返回realm的名称,可以任何设置一个唯一的字符串就可以,一般设置realm的类名
六、权限授权
原文:https://www.cnblogs.com/allenyip/p/10841772.html