Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。
我们先来一个简单的示例
1、创建maven项目
2、将依赖jar包引入项目中,包括shiro和slf4j。
注意:不要忘记把log4j.properties加载到项目路径下
3、添加配置文件,shiro.ini,模拟从数据库中查询登录名称和密码
[users]:代表用户,后面还会介绍 [roles]
4、demo实例,用于登录用户的身份认证。
<span style="font-size:18px;">package com.feiyang;
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;
public class HelloWorld {
public static void main(String[] args) {
//读取配置文件,初始化SecurityManager工厂
Factory<SecurityManager> factory =
new IniSecurityManagerFactory("classpath:shiro.ini");
//获取securityManager实例
SecurityManager securityManager = factory.getInstance();
//把securityManager实例绑定到SecurityUtils
SecurityUtils.setSecurityManager(securityManager);
//得到当前执行的用户
Subject subject = SecurityUtils.getSubject();
//创建token令牌,用户名/密码
UsernamePasswordToken token = new UsernamePasswordToken("feiyang","123456");
try{
//身份验证
subject.login(token);
System.out.println("身份登录成功 ");
}catch(Exception e){
e.printStackTrace();
System.out.println("身份登录成失败");
}
//退出
subject.logout();
}
}
</span>
首先我输入正确的用户名feiyang,密码123456,输出结果如下
之后,输入错误的用户名或密码,输出结果如下:
至此demo完成。