From baa536f442210b00c95991aadc1448e3f3abba2f Mon Sep 17 00:00:00 2001 From: xia jun <3979434@qq.com> Date: Wed, 5 Jun 2024 14:13:56 +0800 Subject: [PATCH] =?UTF-8?q?Server=20SDK=20=E4=BC=98=E5=8C=96Websocket?= =?UTF-8?q?=E9=89=B4=E6=9D=83=E6=9C=BA=E5=88=B6=EF=BC=8C=E5=9C=A8=E6=8F=A1?= =?UTF-8?q?=E6=89=8B=E4=B9=8B=E5=89=8D=E9=89=B4=E6=9D=83=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- cim-boot-server/pom.xml | 2 +- .../predicate/HandshakePredicate.java | 54 ------------- cim-client-sdk/cim-android-sdk/pom.xml | 8 +- cim-server-sdk/pom.xml | 10 +-- cim-server-sdk/release.sh | 2 +- .../cim/acceptor/config/WebsocketConfig.java | 16 ---- .../cim/handshake/HandshakeEvent.java | 76 ------------------ .../cim/handshake/HandshakeHandler.java | 78 ------------------- 9 files changed, 12 insertions(+), 236 deletions(-) delete mode 100644 cim-boot-server/src/main/java/com/farsunset/cim/component/predicate/HandshakePredicate.java delete mode 100644 cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeEvent.java delete mode 100644 cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeHandler.java diff --git a/README.md b/README.md index be0bd24..7c45bfb 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ https://www.yuque.com/yuanfangxiyang/ma4ytb/vvy3iz/edit#nnzKN com.farsunset cim-server-sdk-netty - 4.2.6 + 4.2.7 ``` diff --git a/cim-boot-server/pom.xml b/cim-boot-server/pom.xml index b985732..e2c0a31 100644 --- a/cim-boot-server/pom.xml +++ b/cim-boot-server/pom.xml @@ -67,7 +67,7 @@ com.farsunset cim-server-sdk-netty - 4.2.7-SNAPSHOT + 4.2.7 org.apache.commons diff --git a/cim-boot-server/src/main/java/com/farsunset/cim/component/predicate/HandshakePredicate.java b/cim-boot-server/src/main/java/com/farsunset/cim/component/predicate/HandshakePredicate.java deleted file mode 100644 index c4b6fff..0000000 --- a/cim-boot-server/src/main/java/com/farsunset/cim/component/predicate/HandshakePredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2013-2022 Xia Jun(3979434@qq.com). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *************************************************************************************** - * * - * Website : http://www.farsunset.com * - * * - *************************************************************************************** - */ -package com.farsunset.cim.component.predicate; - -import com.farsunset.cim.handshake.HandshakeEvent; -import org.springframework.stereotype.Component; - -import java.util.function.Predicate; - - -/** - * WS链接握手鉴权验证 - */ -@Deprecated -@Component -public class HandshakePredicate implements Predicate { - - /** - * 验证身份信息,本方法切勿进行耗时操作!!! - * @param event - * @return true验证通过 false验证失败 - */ - @Override - public boolean test(HandshakeEvent event) { - - /* - 可通过header或者uri传递参数 - String token = event.getHeader("token"); - String token = event.getParameter("token"); - do auth.... - */ - - return true; - } -} diff --git a/cim-client-sdk/cim-android-sdk/pom.xml b/cim-client-sdk/cim-android-sdk/pom.xml index a0ae289..7cf3f41 100755 --- a/cim-client-sdk/cim-android-sdk/pom.xml +++ b/cim-client-sdk/cim-android-sdk/pom.xml @@ -61,7 +61,7 @@ org.apache.maven.plugins maven-source-plugin - 2.2.1 + 3.3.1 package @@ -98,7 +98,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.6 + 3.2.4 verify @@ -112,7 +112,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.13.0 1.8 1.8 @@ -125,7 +125,7 @@ org.apache.maven.plugins maven-release-plugin - 2.5.1 + 3.0.1 diff --git a/cim-server-sdk/pom.xml b/cim-server-sdk/pom.xml index ebcd399..33d2dac 100644 --- a/cim-server-sdk/pom.xml +++ b/cim-server-sdk/pom.xml @@ -6,7 +6,7 @@ com.farsunset cim-server-sdk-netty - 4.2.7-SNAPSHOT + 4.2.7 jar ${project.groupId}:${project.artifactId} @@ -109,7 +109,7 @@ 2.2.1 - package + attach-sources jar-no-fork @@ -143,7 +143,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.6 + 3.2.4 verify @@ -157,7 +157,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.13.0 1.8 1.8 @@ -170,7 +170,7 @@ org.apache.maven.plugins maven-release-plugin - 2.5.1 + 3.0.1 diff --git a/cim-server-sdk/release.sh b/cim-server-sdk/release.sh index ce3a0a0..ab9ffff 100755 --- a/cim-server-sdk/release.sh +++ b/cim-server-sdk/release.sh @@ -1 +1 @@ -mvn clean install deploy -P release \ No newline at end of file +mvn clean install deploy -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -P release \ No newline at end of file diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java index 6042b0b..3966543 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java @@ -23,7 +23,6 @@ package com.farsunset.cim.acceptor.config; import com.farsunset.cim.auth.AuthPredicateInfo; import com.farsunset.cim.constant.WebsocketProtocol; -import com.farsunset.cim.handshake.HandshakeEvent; import java.util.function.Predicate; @@ -48,12 +47,6 @@ public class WebsocketConfig extends SocketConfig{ */ private WebsocketProtocol protocol; - /** - * websocket鉴权实现 - */ - @Deprecated - private Predicate handshakePredicate; - /** * 鉴权实现 */ @@ -73,10 +66,6 @@ public class WebsocketConfig extends SocketConfig{ return protocol == null ? DEFAULT_PROTOCOL : protocol; } - public Predicate getHandshakePredicate() { - return handshakePredicate; - } - public void setPath(String path) { this.path = path; } @@ -85,11 +74,6 @@ public class WebsocketConfig extends SocketConfig{ this.protocol = protocol; } - - public void setHandshakePredicate(Predicate handshakePredicate) { - this.handshakePredicate = handshakePredicate; - } - public void setAuthPredicate(Predicate authPredicate) { this.authPredicate = authPredicate; } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeEvent.java b/cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeEvent.java deleted file mode 100644 index 1a3bd07..0000000 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeEvent.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2013-2022 Xia Jun(3979434@qq.com). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *************************************************************************************** - * * - * Website : http://www.farsunset.com * - * * - *************************************************************************************** - */ -package com.farsunset.cim.handshake; - -import io.netty.handler.codec.http.HttpHeaders; -import io.netty.handler.codec.http.QueryStringDecoder; -import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler; - -import java.util.List; - -/** - * websocket客户端握手请求信息 - * 用于在握手阶段鉴权 - */ -@Deprecated -public class HandshakeEvent { - - private final String uri; - - private final HttpHeaders header; - - public HandshakeEvent(String uri, HttpHeaders header) { - this.uri = uri; - this.header = header; - } - - public String getHeader(String name){ - return header.get(name); - } - - public List getHeaders(String name){ - return header.getAll(name); - } - - public Integer getIntHeader(String name){ - return header.getInt(name); - } - - public String getParameter(String name){ - QueryStringDecoder decoder = new QueryStringDecoder(uri); - List valueList = decoder.parameters().get(name); - return valueList == null || valueList.isEmpty() ? null : valueList.get(0); - } - - public List getParameters(String name){ - QueryStringDecoder decoder = new QueryStringDecoder(uri); - return decoder.parameters().get(name); - } - - public String getUri() { - return uri; - } - - public static HandshakeEvent of(WebSocketServerProtocolHandler.HandshakeComplete event){ - return new HandshakeEvent(event.requestUri(),event.requestHeaders()); - } -} diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeHandler.java b/cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeHandler.java deleted file mode 100644 index a560dd5..0000000 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/handshake/HandshakeHandler.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2013-2022 Xia Jun(3979434@qq.com). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *************************************************************************************** - * * - * Website : http://www.farsunset.com * - * * - *************************************************************************************** - */ -package com.farsunset.cim.handshake; - -import com.farsunset.cim.constant.CIMConstant; -import com.farsunset.cim.model.ReplyBody; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelInboundHandlerAdapter; -import io.netty.handler.codec.http.HttpResponseStatus; -import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler; - -import java.util.function.Predicate; - -/** - * WS握手时鉴权 - */ -@Deprecated -@ChannelHandler.Sharable -public class HandshakeHandler extends ChannelInboundHandlerAdapter { - /* - *认证失败,返回replyBody给客户端 - */ - private final ReplyBody failedBody = ReplyBody.make(CIMConstant.CLIENT_HANDSHAKE, - HttpResponseStatus.UNAUTHORIZED.code(), - HttpResponseStatus.UNAUTHORIZED.reasonPhrase()); - - private final Predicate handshakePredicate; - - public HandshakeHandler(Predicate handshakePredicate) { - this.handshakePredicate = handshakePredicate; - } - - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { - - super.userEventTriggered(ctx, evt); - - if (evt instanceof WebSocketServerProtocolHandler.HandshakeComplete) { - doAuthentication(ctx, (WebSocketServerProtocolHandler.HandshakeComplete) evt); - } - - } - - private void doAuthentication(ChannelHandlerContext context, WebSocketServerProtocolHandler.HandshakeComplete event) { - - if (handshakePredicate == null) { - return; - } - - /* - * 鉴权不通过,发送响应体并关闭链接 - */ - if (!handshakePredicate.test(HandshakeEvent.of(event))) { - context.channel().writeAndFlush(failedBody).addListener(ChannelFutureListener.CLOSE); - } - } -} \ No newline at end of file