This is an automated email from the ASF dual-hosted git repository. hefengen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push: new e3c51f5279 [type:fix] ShenYu Admin Cluster, cluster e2e (#5592) e3c51f5279 is described below commit e3c51f5279dba1aa6c8024a30050a987c2031fca Author: aias00 <rok...@163.com> AuthorDate: Mon Jul 8 00:45:17 2024 +0800 [type:fix] ShenYu Admin Cluster, cluster e2e (#5592) * ShenYu Admin Cluster, cluster e2e * ShenYu Admin Cluster, cluster e2e * ShenYu Admin Cluster, cluster e2e * ShenYu Admin Cluster, cluster e2e * ShenYu Admin Cluster, cluster e2e websocket * ShenYu Admin Cluster, cluster e2e websocket * ShenYu Admin Cluster, cluster e2e websocket * ShenYu Admin Cluster, cluster zookeeper e2e debug * ShenYu Admin Cluster, fix cluster e2e failure * ShenYu Admin Cluster, add more cluster forward uris * ShenYu Admin Cluster, cluster websocket * ShenYu Admin Cluster, cluster websocket --- .github/workflows/e2e-k8s.yml | 24 +++++++------- .../mode/cluster/filter/ClusterForwardFilter.java | 2 +- .../admin/service/impl/SyncDataServiceImpl.java | 4 +++ .../admin/shiro/bean/StatelessAuthFilter.java | 4 +++ shenyu-admin/src/main/resources/application.yml | 37 ++++++++++++++++++++++ .../k8s/script/e2e-cluster-jdbc.sh | 4 --- .../k8s/script/e2e-cluster-zookeeper.sh | 7 ++-- .../k8s/shenyu-cluster-jdbc.yml | 4 +++ .../k8s/shenyu-cluster-zookeeper.yml | 4 +++ 9 files changed, 70 insertions(+), 20 deletions(-) diff --git a/.github/workflows/e2e-k8s.yml b/.github/workflows/e2e-k8s.yml index f60e67adf5..fb0a342252 100644 --- a/.github/workflows/e2e-k8s.yml +++ b/.github/workflows/e2e-k8s.yml @@ -196,18 +196,18 @@ jobs: strategy: matrix: include: -# - case: shenyu-e2e-case-http -# script: e2e-http-sync -# - case: shenyu-e2e-case-spring-cloud -# script: e2e-springcloud-sync -# - case: shenyu-e2e-case-apache-dubbo -# script: e2e-apache-dubbo-sync -# - case: shenyu-e2e-case-sofa -# script: e2e-sofa-sync -# - case: shenyu-e2e-case-grpc -# script: e2e-grpc-sync -# - case: shenyu-e2e-case-websocket -# script: e2e-websocket-sync + - case: shenyu-e2e-case-http + script: e2e-http-sync + - case: shenyu-e2e-case-spring-cloud + script: e2e-springcloud-sync + - case: shenyu-e2e-case-apache-dubbo + script: e2e-apache-dubbo-sync + - case: shenyu-e2e-case-sofa + script: e2e-sofa-sync + - case: shenyu-e2e-case-grpc + script: e2e-grpc-sync + - case: shenyu-e2e-case-websocket + script: e2e-websocket-sync - case: shenyu-e2e-case-cluster script: e2e-cluster-jdbc - case: shenyu-e2e-case-cluster diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mode/cluster/filter/ClusterForwardFilter.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mode/cluster/filter/ClusterForwardFilter.java index 834e3e1a96..48c6dc1423 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mode/cluster/filter/ClusterForwardFilter.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mode/cluster/filter/ClusterForwardFilter.java @@ -98,7 +98,7 @@ public class ClusterForwardFilter extends OncePerRequestFilter { final HttpServletResponse response) throws IOException { String targetUrl = getForwardingUrl(request); - LOG.info("forwarding current uri: {} request to target url: {}", request.getRequestURI(), targetUrl); + LOG.info("forwarding current uri: {} method: {} request to target url: {}", request.getRequestURI(), request.getMethod(), targetUrl); // Create request entity HttpHeaders headers = new HttpHeaders(); // Copy request headers diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java index 47c99e6c90..d9f8f6e871 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java @@ -34,6 +34,8 @@ import org.apache.shenyu.common.dto.RuleData; import org.apache.shenyu.common.dto.SelectorData; import org.apache.shenyu.common.enums.ConfigGroupEnum; import org.apache.shenyu.common.enums.DataEventTypeEnum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; @@ -46,6 +48,8 @@ import java.util.stream.Collectors; */ @Service public class SyncDataServiceImpl implements SyncDataService { + + private static final Logger LOG = LoggerFactory.getLogger(SyncDataServiceImpl.class); private final AppAuthService appAuthService; diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/shiro/bean/StatelessAuthFilter.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/shiro/bean/StatelessAuthFilter.java index d46244cb04..d274d2b927 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/shiro/bean/StatelessAuthFilter.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/shiro/bean/StatelessAuthFilter.java @@ -37,6 +37,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; +import java.util.Objects; /** * custom Stateless AccessControlFilter. @@ -100,6 +101,9 @@ public class StatelessAuthFilter extends AccessControlFilter { return tokenValue; } Cookie[] cookies = httpServletRequest.getCookies(); + if (Objects.isNull(cookies)) { + return ""; + } return Arrays.stream(cookies) .filter(cookie -> StringUtils.equals(tokenName, cookie.getName())) .findAny() diff --git a/shenyu-admin/src/main/resources/application.yml b/shenyu-admin/src/main/resources/application.yml index d764f45908..5201bc1f8f 100755 --- a/shenyu-admin/src/main/resources/application.yml +++ b/shenyu-admin/src/main/resources/application.yml @@ -120,9 +120,46 @@ shenyu: - /configs/** - /selector/batchEnabled - /selector/batch + - /selector + - /selector/** - /rule/batchEnabled - /rule/batch + - /rule + - /rule/** + - /plugin + - /plugin/** + - /plugin/createPluginResource/** + - /plugin/batch + - /plugin/enabled + - /plugin/syncPluginAll - /plugin/syncPluginData/** + - /proxy-selector/binding + - /proxy-selector/** + - /proxy-selector/batch + - /proxy-selector/addProxySelector + - /proxy-selector/fetch/** + - /api + - /api/** + - /api/batch + - /appAuth/apply + - /appAuth/updateDetail + - /appAuth/updateDetailPath + - /appAuth/batchDelete + - /appAuth/batchEnabled + - /appAuth/batchOpened + - /appAuth/syncData + - /discovery/insertOrUpdate + - /discovery/** + - /discovery-upstream + - /discovery-upstream/batch + - /discovery-upstream/** + - /meta-data/createOrUpdate + - /meta-data/batchDeleted + - /meta-data/batchEnabled + - /meta-data/syncData + - /plugin-handle + - /plugin-handle/** + - /plugin-handle/batch zookeeper: url: localhost:2181 sessionTimeout: 5000 diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-jdbc.sh b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-jdbc.sh index f71a72c4fb..e4f3c545fe 100644 --- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-jdbc.sh +++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-jdbc.sh @@ -37,10 +37,6 @@ kubectl logs "$(kubectl get pod -o wide | grep shenyu-admin-master | awk '{print kubectl logs "$(kubectl get pod -o wide | grep shenyu-admin-slave | awk '{print $1}')" -kubectl describe pod shenyu-admin-master - -kubectl describe pod shenyu-admin-slave - kubectl logs "$(kubectl get pod -o wide | grep shenyu-bootstrap | awk '{print $1}')" ## run e2e-test diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-zookeeper.sh b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-zookeeper.sh index 342ca2a66a..4804ac2a91 100644 --- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-zookeeper.sh +++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/script/e2e-cluster-zookeeper.sh @@ -34,7 +34,7 @@ sleep 30s chmod +x "${curPath}"/healthcheck.sh sh "${curPath}"/healthcheck.sh cluster http://localhost:31095/actuator/health http://localhost:31096/actuator/health http://localhost:31195/actuator/health -kubectl logs "$(kubectl get pod -o wide | grep shenyu-zookeeper | awk '{print $1}')" +#kubectl logs "$(kubectl get pod -o wide | grep shenyu-zookeeper | awk '{print $1}')" echo "----------shenyu-admin-master log ----------" @@ -44,14 +44,15 @@ echo "----------shenyu-admin-slave log ----------" kubectl logs "$(kubectl get pod -o wide | grep shenyu-admin-slave | awk '{print $1}')" -kubectl describe pod shenyu-admin-master +#kubectl describe pod shenyu-admin-master -kubectl describe pod shenyu-admin-slave +#kubectl describe pod shenyu-admin-slave kubectl logs "$(kubectl get pod -o wide | grep shenyu-bootstrap | awk '{print $1}')" ## run e2e-test sleep 60s +echo "----------shenyu-bootstrap pluginData ----------" curl -S "http://localhost:31195/actuator/pluginData" ./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-cluster -am test diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-jdbc.yml b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-jdbc.yml index ffca44b582..1446e3d442 100644 --- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-jdbc.yml +++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-jdbc.yml @@ -45,6 +45,8 @@ spec: value: "9095" - name: shenyu.cluster.enabled value: "true" + - name: shenyu.sync.websocket.allowOrigins + value: ws://localhost:9095;ws://localhost:9195; - name: spring.datasource.username value: root - name: spring.datasource.password @@ -112,6 +114,8 @@ spec: value: "9096" - name: shenyu.cluster.enabled value: "true" + - name: shenyu.sync.websocket.allowOrigins + value: ws://localhost:9096;ws://localhost:9195; - name: spring.datasource.username value: root - name: spring.datasource.password diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-zookeeper.yml b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-zookeeper.yml index bd4960973e..0736383b7a 100644 --- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-zookeeper.yml +++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/k8s/shenyu-cluster-zookeeper.yml @@ -44,6 +44,8 @@ spec: value: "9095" - name: shenyu.cluster.enabled value: "true" + - name: shenyu.sync.websocket.allowOrigins + value: ws://localhost:9095;ws://localhost:9195; - name: shenyu.cluster.type value: "zookeeper" - name: shenyu.cluster.zookeeper.url @@ -115,6 +117,8 @@ spec: value: "9096" - name: shenyu.cluster.enabled value: "true" + - name: shenyu.sync.websocket.allowOrigins + value: ws://localhost:9096;ws://localhost:9195; - name: shenyu.cluster.type value: "zookeeper" - name: shenyu.cluster.zookeeper.url