<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bobo</groupId>
<artifactId>ShiroDemo01</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
? ?
2.2 创建ini文件
初次使用我们可以将系统的账号信息配置在ini文件中,减少入门的难度。
[users]
root=123456
# 账号是root,密码是123456
? ? ?
2.3 测试代码
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进行投诉反馈,一经查实,立即删除!