diff --git a/pom.xml b/pom.xml
index 7b35aaf..5d6dd1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.gxwebsoft
com-gxwebsoft-server
- 2.0
+ 1.5.2
com-gxwebsoft-api
WebSoftApi project for Spring Boot
@@ -291,6 +291,15 @@
1.0.0.14
+
+
+ com.github.xiaoymin
+ knife4j-spring-boot-starter
+ 3.0.3
+
+
+
+
diff --git a/src/main/java/com/gxwebsoft/common/core/config/SpringFoxSwaggerHostResolver.java b/src/main/java/com/gxwebsoft/common/core/config/SpringFoxSwaggerHostResolver.java
new file mode 100644
index 0000000..25e6f78
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/common/core/config/SpringFoxSwaggerHostResolver.java
@@ -0,0 +1,59 @@
+package com.gxwebsoft.common.core.config;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.servers.Server;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import springfox.documentation.oas.web.OpenApiTransformationContext;
+import springfox.documentation.oas.web.WebMvcOpenApiTransformationFilter;
+import springfox.documentation.spi.DocumentationType;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class SpringFoxSwaggerHostResolver implements WebMvcOpenApiTransformationFilter {
+ @Override
+ public OpenAPI transform(OpenApiTransformationContext context) {
+
+ HttpServletRequest request = context.request().get();
+
+ OpenAPI swagger = context.getSpecification();
+
+ String scheme = "http";
+ String referer = request.getHeader("Referer");
+
+ if(StringUtils.hasLength(referer)){
+ //获取协议
+ scheme = referer.split(":")[0];
+ }
+
+ List servers = new ArrayList<>();
+ String finalScheme = scheme;
+ //重新组装server信息
+ swagger.getServers().forEach(item->{
+
+ //替换协议,去掉默认端口
+ item.setUrl(clearDefaultPort(item.getUrl().replace("http", finalScheme)));
+ servers.add(item);
+ });
+ swagger.setServers(servers);
+ return swagger;
+ }
+
+ //清除默认端口
+ private String clearDefaultPort(String url){
+
+ String port = url.split(":")[2];
+ if("80".equals(port)||"443".equals(port)){
+ return url.replace(":80","").replace(":443","");
+ }
+ return url;
+ }
+
+ @Override
+ public boolean supports(DocumentationType documentationType) {
+ return documentationType.equals(DocumentationType.OAS_30);
+ }
+}
diff --git a/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java b/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java
index 4ad87c8..105fc28 100644
--- a/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java
+++ b/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java
@@ -60,8 +60,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
final SignCheckUtil checkUtil = new SignCheckUtil();
String key = "WhiteDomain:" + jwtSubject.getTenantId();
List whiteDomains = redisUtil.get(key, List.class);
- System.out.println("request.getServerName() = " + request.getServerName());
- if (!checkUtil.checkWhiteDomains(whiteDomains, request.getServerName()) && !"localhost".equals(request.getServerName())) {
+ if (!checkUtil.checkWhiteDomains(whiteDomains, request.getServerName()) && !"localhost".equals(request.getServerName()) && !"server.gxwebsoft.com".equals(request.getServerName())) {
throw new UsernameNotFoundException("The requested domain name is not on the whitelist");
}