package com.bobo.shiro.test;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationToken;
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;
public class Test01 {
/**
* Shiro的入门案例
* 账号密码是定义在ini文件中的
* @param args
*/
public static void main(String[] args) {
// 1.获取一个SecurityManager工厂对象
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
// 2.通过SecurityManager工厂对象创建SecurityManager对象
SecurityManager securityManager = factory.getInstance();
// 3.将SecurityManager对象添加到当前的运行环境中去
SecurityUtils.setSecurityManager(securityManager);
// 4.获取Subject对象
Subject subject = SecurityUtils.getSubject();
// 5.获取用户提交的要认证的账号密码
String userName = "root";
String password = "1234561";
// 6.将用户提交的账号密码封装为一个Token对象
AuthenticationToken token = new UsernamePasswordToken(userName,password);
// 7.完成认证操作 login
subject.login(token);
// 8.获取认证状态
System.out.println(subject.isAuthenticated());
}
}
??
2.4 测试效果
账号错误,抛UnknownAccountException异常。
??
密码出错,抛IncorrectCredentialsException异常。
??
账号密码都正确会正常执行,基于以上特点我们可以将代码结构修改为如下。
文章来源:https://blog.csdn.net/m0_52514893/article/details/135282267
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!