Shiro 学习记录 Shiro 入门程序
package com.grab.shiro;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
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 ShiroHelloWorld {
public static void main(String[] args) {
//都区委配置文件,初始化SecurityManager工厂
// Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");//放在项目读取不到,所以换个位置
Factory<SecurityManager> factory = new IniSecurityManagerFactory("file:E:/shiro/shiro.ini");
//获取SecurityManager实例
SecurityManager securityManager = factory.getInstance();
//把securityManager实例绑定到SecurityUtils
SecurityUtils.setSecurityManager(securityManager);
//得到当前是执行的用户
Subject currentUser = SecurityUtils.getSubject();
//创建token令牌,用户名/密码
UsernamePasswordToken token = new UsernamePasswordToken("xuan","123456");
try {
//身份认证
currentUser.login(token);
System.out.println("身份认证成功!");
} catch (AuthenticationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("身份认证失败!");
}
//退出
currentUser.logout();
}
}
pom.xml
版本是 <shiro.version>1.2.4</shiro.version>
<!-- Shiro security -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cas</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
<!-- end of Shiro security -->
shiro.ini
[users]
xuan=123456
chen=123456789