赞
踩
Apache Shiro 是Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境。Shiro 可以帮助我们完成:认证(登录)、授权(角色,权限)、加密(pass加密)、会话管理、与Web 集成、缓存等。
- package com.xiexin.shiroTest;
-
- import org.apache.shiro.SecurityUtils;
- import org.apache.shiro.authc.IncorrectCredentialsException;
- import org.apache.shiro.authc.UnknownAccountException;
- import org.apache.shiro.authc.UsernamePasswordToken;
- import org.apache.shiro.mgt.DefaultSecurityManager;
- import org.apache.shiro.realm.text.IniRealm;
- import org.apache.shiro.subject.Subject;
- import org.junit.jupiter.api.Test;
-
- /*
- shiro的认证
- shrio三大概念 subject(用户的请求 主体)
- security Manager(shiro的管理类)
- realms(数据库) 分为ini realm和jdbc realm 自定义的realm--常用自定义(mybatis)
- */
- public class shiroini {
- @Test
- public void test01() {
- //1.relams
- IniRealm iniRealm = new IniRealm("classpath:shiro.ini");
- //2.security Manager
- DefaultSecurityManager sm = new DefaultSecurityManager();
- sm.setRealm(iniRealm);
- //以上步骤是吧realms注入到sm中 即把他们两个联系在一起 下面剩下subject了
- //subject不是new出来的 因为subject是一个实打实的对象 原本就有的
- //只需要shiro做一个接待就可以了
- SecurityUtils.setSecurityManager(sm); //接管sm
- Subject subject = SecurityUtils.getSubject();
- //可以使用subject了。。。。
- //拟定一个虚拟的账户名和密码 token
- //错误会报错 数据库中正确的不会报错
- String userName = "xiexin";
- String userPwd = "123";
- //在这里 利用shiro把userName和userpwd变为一个token
- UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userName, userPwd);
- System.out.println("拟定一个虚拟的账户名和密码 token = " + usernamePasswordToken);
- //数据库中的账户名密码 token
- UsernamePasswordToken token = new UsernamePasswordToken("xiexin", "123");
- System.out.println("数据库中的账户名密码 token = " + token);
- try {
- subject.login(usernamePasswordToken); //注意 这个登录的方法是shiro提供的 以后我们自己不写登陆
- System.out.println("登陆成功");
- }catch (UnknownAccountException e){
- System.out.println("账号错误");
- }catch (IncorrectCredentialsException e){
- System.out.println("密码错误");
- }
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。