• Shiro(一)通过shiro实现登录


    第一步

    public class ShiroTest         
    @Test        
    public void test1(){
    //
    1.获取用户输入的账号密码 假数据 模拟用户网页输入 String username = "xiaohei"; String password = "123456"; // 2.获取数据库的数据(ini配置文件) 假数据 IniSecurityManagerFactory securityManagerFactory = new IniSecurityManagerFactory("classpath:datasources.ini"); /** * SecurityManager 安全管理器对象 Shiro中的核心对象 * 在此处可以认为封装了配置文件中的用户数据 */ SecurityManager securityManager = securityManagerFactory.getInstance(); // 3.把安全管理器 给 工具类 就相当于把数据库中的数据(ini配置文件)给了Subject SecurityUtils.setSecurityManager(securityManager); // 4.获取Subject 主体 /** * 在项目中任何位置想要得到Subject 都需要通过SecurityUtils 工具类 * * 保证了单例 */ Subject subject = SecurityUtils.getSubject(); // 5.需要把用户输入的账号密码给主体 /** * Token 令牌 记录身份信息 在shiro中需要先把账号密码 封装到Token中 * 在登录的时候 将Token给Subject */ UsernamePasswordToken token = new UsernamePasswordToken(username, password); // 6.调用登录方法 /** * login 通过抛异常的方式来告诉用户有没有登录成功 * * IncorrectCredentialsException 代表密码不正确 Credential 凭证信息 就是password的意思 * * UnknownAccountException 代表账号不存在 Account 账号 * */ try{ subject.login(token); System.out.println("登录成功1"); }catch (IncorrectCredentialsException e){ System.out.println("密码不正确"); }catch (UnknownAccountException e1){ System.out.println("账号不存在"); }
            if(
    subject.isAuthenticated()){
                System.out.println(authenticated+"是否登录成功");
            }
    
            }

    说明:

    数据库的用户信息使用的是datasources.ini配置文件中的假数据。因为Shiro默认就是从配置文件读取信息

  • 相关阅读:
    JavaScript与OC的交互
    通过修改自动布局的约束实现键盘弹出后view上推
    Foundation框架之NSArray
    Foundation框架之NSString
    Foundation框架之常用结构体
    C语言中的预处理指令
    C语言指针使用总结
    C语言中函数的使用及多文件团队开发
    Foundation框架简介
    文件的输入与输出
  • 原文地址:https://www.cnblogs.com/mikemhm/p/11098109.html
Copyright © 2020-2023  润新知