整理swagger接口说明
This commit is contained in:
11
pom.xml
11
pom.xml
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<groupId>com.gxwebsoft</groupId>
|
<groupId>com.gxwebsoft</groupId>
|
||||||
<artifactId>com-gxwebsoft-server</artifactId>
|
<artifactId>com-gxwebsoft-server</artifactId>
|
||||||
<version>2.0</version>
|
<version>1.5.2</version>
|
||||||
|
|
||||||
<name>com-gxwebsoft-api</name>
|
<name>com-gxwebsoft-api</name>
|
||||||
<description>WebSoftApi project for Spring Boot</description>
|
<description>WebSoftApi project for Spring Boot</description>
|
||||||
@@ -291,6 +291,15 @@
|
|||||||
<version>1.0.0.14</version>
|
<version>1.0.0.14</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- knife4j -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||||
|
<version>3.0.3</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -60,8 +60,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
final SignCheckUtil checkUtil = new SignCheckUtil();
|
final SignCheckUtil checkUtil = new SignCheckUtil();
|
||||||
String key = "WhiteDomain:" + jwtSubject.getTenantId();
|
String key = "WhiteDomain:" + jwtSubject.getTenantId();
|
||||||
List<String> whiteDomains = redisUtil.get(key, List.class);
|
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()) && !"server.gxwebsoft.com".equals(request.getServerName())) {
|
||||||
if (!checkUtil.checkWhiteDomains(whiteDomains, request.getServerName()) && !"localhost".equals(request.getServerName())) {
|
|
||||||
throw new UsernameNotFoundException("The requested domain name is not on the whitelist");
|
throw new UsernameNotFoundException("The requested domain name is not on the whitelist");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user