Shiro入门(二)Shiro登录认证

前言

      本章讲解使用Shiro实现登陆验证

方法

1.概念

Authentication,验证用户是否合法,说白了就是登陆。

 需要提交用户的身份和凭证给shiro,简单点来说就是用户名和密码。

Principals:用户的身份信息,是Subjec的标识属性。能够唯一标识Subjcet。如电话号码、电子邮箱,身份证号等。

Credentials:凭证,是只被Subject知道的秘密值。可以是密码,也可以是其他,如数字证书等。

2.Shiro中用户的认证流程

3.实现步骤

1)新建一个Gradle的Java工程

2)引入Shiro相关的jar包

 

3)创建shrio.ini用来验证用户名密码是否合法

 

这里我们指定了用户名和密码必须为admin和123的时候才算验证成功!

4)编写代码进行验证

package cn.edu.ccut.test;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
import org.apache.shiro.mgt.SecurityManager;

/**
 * @Auther:jwang
 * @Date:2019/5/8
 * @Description:cn.edu.ccut.test
 * @Version 1.0
 **/
public class Authentication {

    public static void main(String [] args){
        //创建SecurityManager工厂
        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
        //通过SecurityManager工厂获取SecurityManager实例
        SecurityManager securityManager = factory.getInstance();
        //将SecurityManager对象设置到运行环境中
        SecurityUtils.setSecurityManager(securityManager);
        //通过SecurityUtils获取主体Subject
        Subject currentUser = SecurityUtils.getSubject();
        //假设传入的用户名密码为admin和123
        UsernamePasswordToken token = new UsernamePasswordToken("admin", "123");
        //进行用户身份验证
        currentUser.login(token);
        //如果用户认证成功
        if (currentUser.isAuthenticated()) {
            System.out.println("用户登录成功!");
        }else {
            System.out.println("用户登录失败!");
        }
    }
}

注意:需要引入org.apache.shiro.mgt.SecurityManager,否则默认是java.lang.SecurityManager

运行代码我们发现:

显然,我们还缺少相关的jar包,进行引入:

 

导入后运行结果如下:
 

这意味着用户登录认证通过! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值