EMQX JWT认证 java使用方法

说明:

  1. 本地安装的emqx-5.0.25-windows-amd64.zip    地址:下载 EMQX
  2. 使用springboot作为示例进行登录

1、登录emqx,打开访问控制->客户端认证,然后创建JWT认证,具体示例配置如下。加密方式使用hmax-based,Secret:eXhx(此字符串为‘yxq’进行base64编码后的字符串)

 2、生成JWT密码,可以用两种方式:java和jwt.io网址

2.1:java代码根据上图的规则生成jwt密码,通过执行jwt()方法生成加密密码

import io.jsonwebtoken.*;

public class TestEmqxJWT {

    private long time = 1000 * 60 * 60 * 24;
    //secret签名:此处是一个字符串转换成base64编码, yxq->eXhx
    //emqt中的jwt认证应选择Secret使用Base64编码
    private String signature = "eXhx";

    @org.junit.Test
    public void jwt() {
        JwtBuilder jwtBuilder = Jwts.builder();

        String jwtToken = jwtBuilder
                //header
                .setHeaderParam("alg", "HS256")
                .setHeaderParam("typ", "JWT")
                //payload
                .claim("password", "lieh")
//                .claim("clientid", "yxq_test")
//                .setSubject("lieh")
//                .setIssuedAt(Date.from(Instant.now()))
//                .setExpiration(new Date(System.currentTimeMillis() + time)) //有效时间1天
//                .setId("yxq_test")
                //signature
                .signWith(SignatureAlgorithm.HS256, signature)
                .compact();
        System.out.println(jwtToken);
    }

    @org.junit.Test
    public void parse() {
        String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXNzd29yZCI6ImxpZWgifQ.kDfiSbXmCEKTdQsqKwjXgsCVUIIntzJ8WmxuCxXjS7M";
        JwtParser jwtParser = Jwts.parser();
        Jws<Claims> claimsJws = jwtParser.setSigningKey(signature).parseClaimsJws(token);
        Claims claims = claimsJws.getBody();
        System.out.println(claims.get("password"));
//        System.out.println(claims.get("role"));
//        System.out.println(claims.getId());
//        System.out.println(claims.getSubject());
//        System.out.println(claims.getExpiration());
    }

}

####maven--依赖
<dependency>
     <groupId>io.jsonwebtoken</groupId>
     <artifactId>jjwt</artifactId>
     <version>0.9.1</version>
</dependency>
<dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.12</version>
</dependency>

2.2 网址生成:JSON Web Tokens - jwt.io

 3、将生成的密码作为password进行登录,登陆后可以在emqx的客户端查看到当前客户端已登陆,订阅管理可以看到当前客户端订阅的主题。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值