1.在pom.xml中导入jar包
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.3</version>
</dependency>
2.首先准备一些用户身份 / 凭据(shiro.ini)
[users]
root=123456,admin
test=000000,test
[roles]
admin=*
test=select,add,update
3.tes:
public class ShiroTest {
public static void main(String[] args) {
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager securityManager = factory.getInstance();
// 注入SecurityManager
SecurityUtils.setSecurityManager(securityManager);
// 获取当前的 Subject. 调用 SecurityUtils.getSubject();
Subject subject = SecurityUtils.getSubject();
// 把用户名和密码封装为 UsernamePasswordToken 对象
UsernamePasswordToken token = new UsernamePasswordToken("root","123456");
try {
subject.login(token);
if(subject.isAuthenticated()){
System.out.println("登录成功");
if (subject.hasRole("admin")){
System.out.println("有admin");
}else{
System.out.println("没有");
}
//这行代码用来判断已登陆用户是否具有某权限
if(subject.isPermitted("select")){
System.out.println("有select");
}else{
System.out.println("没select");
}
}
System.out.println("");
} catch (AuthenticationException e) {
System.out.println("用户名或密码错误");
}
}
}
实际开发中从MySQL中查询:
1.pom.xml导入jar包
<!--jdbc类-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.3.RELEASE</version>
</dependency>
<!--shiro核心类库-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.3</version>
</dependency>