shior 使用ini配置文件 实现简单的登录

此代码、只是一个简单的示例,真正项目中不会使用此种办法,但要注意异常处理

配置文件

 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 {
        }
    }
}