shiro----异常处理

Shiro 验证时异常分析

DisabledAccountException 账户失效异常

ConcurrentAccessException 竞争次数过多

ExcessiveAttemptsException 尝试次数过多

UnknownAccountException 用户名不正确

IncorrectCredentialsException 凭证(密码)不正确

ExpiredCredentialsException 凭证过期

login方法会抛出登录的异常,通过trycatch捕获处理


ublic class TestA {

    public static void main(String[] args) {


        //[1]解析shiro.ini文件

        Factory<SecurityManager>  factory =new IniSecurityManagerFactory("classpath:shiro.ini");

        //[2]通过SecurityManager工厂获得SecurityManager实例

        SecurityManager securityManager = factory.getInstance();

        //[3]把SecurityManager对象设置到运行环境中
        SecurityUtils.setSecurityManager(securityManager);

        //[4]通过SecurityUtils获得主体subject
        Subject subject = SecurityUtils.getSubject();

        //[5]书写自己输入的账号和密码---相当于用户自己输入的账号和密码
        //我们拿着自己书写用户名密码去和shiro.ini 文件中的账号密码比较
        UsernamePasswordToken  token =new UsernamePasswordToken("zs","123");

        try {
            //[6]进行身份的验证
            subject.login(token);

            //[7]通过方法判断是否登录成功

            if(subject.isAuthenticated()){
                System.out.println("登录成功");

            }
        } catch (IncorrectCredentialsException e) {

            System.out.println("登录失败");


        }catch (UnknownAccountException e){

            System.out.println("用户名不正确");
        }
    }
}

shiro.ini配置文件

[users]
zs=123
sxt=root
posted @ 2021-08-09 14:43  是但啦  阅读(391)  评论(0)    收藏  举报