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..6b55b91 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 @@ -4,13 +4,11 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.handler.codec.http.FullHttpRequest; import io.netty.handler.codec.http.HttpHeaders; -import io.netty.util.AttributeKey; 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 { 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/NettyWebSocketServer.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServer.java index 4ebf470..b70b867 100644 --- a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServer.java +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/websocket/NettyWebSocketServer.java @@ -10,7 +10,6 @@ import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpServerCodec; -import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler; import io.netty.handler.logging.LogLevel; import io.netty.handler.logging.LoggingHandler; import io.netty.handler.stream.ChunkedWriteHandler; @@ -89,7 +88,7 @@ public class NettyWebSocketServer { * 4. WebSocketServerProtocolHandler 核心功能是把 http协议升级为 ws 协议,保持长连接; * 是通过一个状态码 101 来切换的 */ - pipeline.addLast(new WebSocketServerProtocolHandler("/")); + pipeline.addLast(new WebSocketHandshakeHandler()); // 自定义handler ,处理业务逻辑 pipeline.addLast(new NettyWebSocketServerHandler()); } 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..e89030e 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