整理swagger接口说明
This commit is contained in:
11
pom.xml
11
pom.xml
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user