• 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默认就是从配置文件读取信息

  • 相关阅读:
    百练 2712 细菌繁殖 解题报告
    Elasticsearch常用最全最常用工具清单
    并发工具类使用详解及区别(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)
    Elasticsearch 启动过程详解
    Elasticsearch 编译调试总结
    gradle镜像源配置
    Activiti6详细教程
    CSDN-markdown编辑器语法
    Spring Boot Activiti 整合工作流引擎开发
    less使用语法详解
  • 原文地址:https://www.cnblogs.com/mikemhm/p/11098109.html
Copyright © 2020-2023  润新知