From 0cc840cadfb50e143ddf942b1d953f9330485974 Mon Sep 17 00:00:00 2001 From: zbzbzzz Date: Sat, 1 Jul 2023 16:58:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:ws=E6=8F=A1=E6=89=8B=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/common/utils/JwtUtils.java | 2 +- .../common/algorithm/ac/CreateTokenTest.java | 44 +++++++++++++++++++ .../user/websocket/HttpHeadersHandler.java | 3 +- .../custom/user/websocket/NettyUtil.java | 1 + .../NettyWebSocketServerHandler.java | 6 +-- 5 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 mallchat-common/src/test/java/com/abin/mallchat/common/common/algorithm/ac/CreateTokenTest.java diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/common/utils/JwtUtils.java b/mallchat-common/src/main/java/com/abin/mallchat/common/common/utils/JwtUtils.java index af02421..fe2a97e 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/common/utils/JwtUtils.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/common/utils/JwtUtils.java @@ -26,7 +26,7 @@ public class JwtUtils { /** * token秘钥,请勿泄露,请勿随便修改 */ - @Value("jwt.secret") + @Value("${mallchat.jwt.secret}") private String secret; private static final String UID_CLAIM = "uid"; diff --git a/mallchat-common/src/test/java/com/abin/mallchat/common/common/algorithm/ac/CreateTokenTest.java b/mallchat-common/src/test/java/com/abin/mallchat/common/common/algorithm/ac/CreateTokenTest.java new file mode 100644 index 0000000..50908e4 --- /dev/null +++ b/mallchat-common/src/test/java/com/abin/mallchat/common/common/algorithm/ac/CreateTokenTest.java @@ -0,0 +1,44 @@ +package com.abin.mallchat.common.common.algorithm.ac; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.interfaces.DecodedJWT; +import com.auth0.jwt.interfaces.JWTVerifier; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.junit.Test; + +import java.util.Date; + + +@Slf4j +public class CreateTokenTest { + + @Test + public void create(){ + String token = JWT.create() + .withClaim("uid", 123L) // 只存一个uid信息,其他的自己去redis查 + .withClaim("createTime", new Date()) + .sign(Algorithm.HMAC256("dsfsdfsdfsdfsd")); // signature + log.info("生成的token为 {}",token); + + + try { + JWTVerifier verifier = JWT.require(Algorithm.HMAC256("dsfsdfsdfsdfsd")).build(); + DecodedJWT jwt = verifier.verify(token); + log.info(jwt.getClaims().toString()); + } catch (Exception e) { + log.info("decode error,token:{}", token, e); + } + } + + @Test + public void verifyToken(){ + String token = JWT.create() + .withClaim("uid", 1) // 只存一个uid信息,其他的自己去redis查 + .withClaim("createTime", new Date()) + .sign(Algorithm.HMAC256("dsfsdfsdfsdfsd")); // signature + log.info("生成的token为{}",token); + } +} diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/HttpHeadersHandler.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/HttpHeadersHandler.java index 72f4b3c..df64b64 100644 --- a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/HttpHeadersHandler.java +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/HttpHeadersHandler.java @@ -10,7 +10,6 @@ import org.apache.commons.lang3.StringUtils; import java.net.InetSocketAddress; public class HttpHeadersHandler extends ChannelInboundHandlerAdapter { - private AttributeKey key = AttributeKey.valueOf("Id"); @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { @@ -22,6 +21,8 @@ public class HttpHeadersHandler extends ChannelInboundHandlerAdapter { ip = address.getAddress().getHostAddress(); } NettyUtil.setAttr(ctx.channel(), NettyUtil.IP, ip); + String token = headers.get("token"); + NettyUtil.setAttr(ctx.channel(), NettyUtil.TOKEN, token); } ctx.fireChannelRead(msg); } diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyUtil.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyUtil.java index d2bacef..79daafa 100644 --- a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyUtil.java +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyUtil.java @@ -12,6 +12,7 @@ import io.netty.util.AttributeKey; public class NettyUtil { + public static AttributeKey TOKEN = AttributeKey.valueOf("token"); public static AttributeKey IP = AttributeKey.valueOf("ip"); public static AttributeKey UID = AttributeKey.valueOf("uid"); diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServerHandler.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServerHandler.java index 7f1c981..b4b5734 100644 --- a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServerHandler.java +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServerHandler.java @@ -66,6 +66,7 @@ public class NettyWebSocketServerHandler extends SimpleChannelInboundHandler