整理swagger接口说明

This commit is contained in:
2024-08-19 13:12:33 +08:00
parent c86e609b78
commit e8dc9cf091
3 changed files with 70 additions and 3 deletions

11
pom.xml
View File

@@ -5,7 +5,7 @@
<groupId>com.gxwebsoft</groupId>
<artifactId>com-gxwebsoft-server</artifactId>
<version>2.0</version>
<version>1.5.2</version>
<name>com-gxwebsoft-api</name>
<description>WebSoftApi project for Spring Boot</description>
@@ -291,6 +291,15 @@
<version>1.0.0.14</version>
</dependency>
<!-- knife4j -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
</dependencies>
<build>

View File

@@ -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<HttpServletRequest> 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<Server> 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);
}
}

View File

@@ -60,8 +60,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
final SignCheckUtil checkUtil = new SignCheckUtil();
String key = "WhiteDomain:" + jwtSubject.getTenantId();
List<String> 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");
}