shior 使用ini配置文件 实现简单的登录
此代码、只是一个简单的示例,真正项目中不会使用此种办法,但要注意异常处理
配置文件
package src.main.java.ini.test;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
import org.apache.shiro.mgt.SecurityManager;
/**
* 测试读取ini配置文件
*/
public class TestIni {
public static void main(String[] args) {
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("root","1231");
try {
subject.login(token);
System.out.printf(subject.isAuthenticated()+"");
} catch (UnknownAccountException e) {
System.out.printf("用户不存在");
e.printStackTrace();
} catch (IncorrectCredentialsException e) {
System.out.printf("密码错误");
e.printStackTrace();
} catch (LockedAccountException e) {
// 此处锁定 需要判断数据库,之后抛出LockedAccountException异常,
System.out.printf("用户已锁定");
e.printStackTrace();
} catch (AuthenticationException e) {
System.out.printf("未知错误");
e.printStackTrace();
} finally {
}
}
}