Shiro个人学习总结一
通过配置ini文件实现权限拦截
1.加载包shiro-core.jar、log4j12
2.建立Maven工程,搭建SSM项目
3.创建shiro.ini文件并写入规则
#users定义用户密码及角色
#用户名=密码,角色
[users]
root=123,admin
test=111,test
#roles定义角色及相应的权限
#角色名=权限名(多个权限用,隔开)
[roles]
admin=*
test=search,add,update
4.创建shiroIni.java类用来加载自定义的规则(shiro.ini),并实现登陆验证
package com.qf.shiro.pojo;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.realm.jdbc.JdbcRealm;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
public class ShiroTest {
public static void main(String[] args){
Factory<SecurityManager> fa =
new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager securityManager = fa.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token =
new UsernamePasswordToken("root","admin");
try {
subject.login(token);
if(subject.isAuthenticated()){
if(subject.hasRole("admin")){
System.out.println("有角色");
}else{
System.out.println("无角色");
}
}
}catch (IncorrectCredentialsException e){
System.out.println("登陆失败,账号或密码错误");
}catch (UnknownAccountException e){
System.out.println("用户不存在");
}
System.out.println("success login");
}
}
以上便是简单的实现了shiro权限验证