当前位置:   article > 正文

初始shiro_shiro默认密钥配置

shiro默认密钥配置

Apache Shiro 是Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境。Shiro 可以帮助我们完成:认证(登录)、授权(角色,权限)、加密(pass加密)、会话管理、与Web 集成、缓存等。

  1. package com.xiexin.shiroTest;
  2. import org.apache.shiro.SecurityUtils;
  3. import org.apache.shiro.authc.IncorrectCredentialsException;
  4. import org.apache.shiro.authc.UnknownAccountException;
  5. import org.apache.shiro.authc.UsernamePasswordToken;
  6. import org.apache.shiro.mgt.DefaultSecurityManager;
  7. import org.apache.shiro.realm.text.IniRealm;
  8. import org.apache.shiro.subject.Subject;
  9. import org.junit.jupiter.api.Test;
  10. /*
  11. shiro的认证
  12. shrio三大概念 subject(用户的请求 主体)
  13. security Manager(shiro的管理类)
  14. realms(数据库) 分为ini realm和jdbc realm 自定义的realm--常用自定义(mybatis)
  15. */
  16. public class shiroini {
  17. @Test
  18. public void test01() {
  19. //1.relams
  20. IniRealm iniRealm = new IniRealm("classpath:shiro.ini");
  21. //2.security Manager
  22. DefaultSecurityManager sm = new DefaultSecurityManager();
  23. sm.setRealm(iniRealm);
  24. //以上步骤是吧realms注入到sm中 即把他们两个联系在一起 下面剩下subject了
  25. //subject不是new出来的 因为subject是一个实打实的对象 原本就有的
  26. //只需要shiro做一个接待就可以了
  27. SecurityUtils.setSecurityManager(sm); //接管sm
  28. Subject subject = SecurityUtils.getSubject();
  29. //可以使用subject了。。。。
  30. //拟定一个虚拟的账户名和密码 token
  31. //错误会报错 数据库中正确的不会报错
  32. String userName = "xiexin";
  33. String userPwd = "123";
  34. //在这里 利用shiro把userName和userpwd变为一个token
  35. UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userName, userPwd);
  36. System.out.println("拟定一个虚拟的账户名和密码 token = " + usernamePasswordToken);
  37. //数据库中的账户名密码 token
  38. UsernamePasswordToken token = new UsernamePasswordToken("xiexin", "123");
  39. System.out.println("数据库中的账户名密码 token = " + token);
  40. try {
  41. subject.login(usernamePasswordToken); //注意 这个登录的方法是shiro提供的 以后我们自己不写登陆
  42. System.out.println("登陆成功");
  43. }catch (UnknownAccountException e){
  44. System.out.println("账号错误");
  45. }catch (IncorrectCredentialsException e){
  46. System.out.println("密码错误");
  47. }
  48. }
  49. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/570342
推荐阅读
相关标签
  

闽ICP备14008679号