更新时间:2020年08月04日17时18分 来源:澳门大阳城APP入口 浏览次数:
【1】基本流程
流程如下:
1、Shiro把用户的数据封装成标识token,token一般封装着用户名,密码等信息;
2、使用Subject门面获取到封装着用户的数据的标识token;
3、Subject把标识token交给SecurityManager,在SecurityManager安全中心中,SecurityManager把标识token委托给认证器;Authenticator进行身份验证。认证器的作用一般是用来指定如何验证,它规定本次认证用到哪些Realm;
4、认证器Authenticator将传入的标识token,与数据源Realm对比,验证token是否合法。
【2.1】需求
使用shiro完成一个用户的登录
【2.2】实现
【2.2.1】新建项目
shiro-day01-01authenticator
【2.2.2】导入依赖
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
【2.2.3】编写shiro.ini
#声明用户账号
[users]
jay=123
【2.2.4】编写HelloShiro
package com.itheima.shiro;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
import org.junit.Test;
/**
* @Description:shiro的第一个例子
*/
public class HelloShiro {
@Test
public void shiroLogin() {
//导入权限ini文件构建权限工厂
Factory
//工厂构建安全管理器
SecurityManager securityManager = factory.getInstance();
//使用SecurityUtils工具生效安全管理器
SecurityUtils.setSecurityManager(securityManager);
//使用SecurityUtils工具获得主体
Subject subject = SecurityUtils.getSubject();
//构建账号token
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("jay", "123");
//登录操作
subject.login(usernamePasswordToken);
System.out.println("是否登录成功:" + subject.isAuthenticated());
}
}
【2.2.4】测试
【2.3】小结
(1)权限定义:ini文件
(2)加载过程:
导入权限ini文件构建权限工厂;
工厂构建安全管理器;
使用SecurityUtils工具生效安全管理器;
使用SecurityUtils工具获得主体;
使构建账号token用SecurityUtils工具获得主体;
构建账号token;
登录操作。
猜你喜欢: