Commit 4f318f1b by Nepxion

修复在Ngnix代理上,访问Swagger的跨域代码重复的问题

parent 6ced7eec
...@@ -9,12 +9,6 @@ package com.nepxion.discovery.console.configuration; ...@@ -9,12 +9,6 @@ package com.nepxion.discovery.console.configuration;
* @version 1.0 * @version 1.0
*/ */
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestHandlerSelectors;
...@@ -24,6 +18,12 @@ import springfox.documentation.spi.DocumentationType; ...@@ -24,6 +18,12 @@ import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
public class SwaggerConfiguration implements WebMvcConfigurer { public class SwaggerConfiguration implements WebMvcConfigurer {
...@@ -54,6 +54,9 @@ public class SwaggerConfiguration implements WebMvcConfigurer { ...@@ -54,6 +54,9 @@ public class SwaggerConfiguration implements WebMvcConfigurer {
@Value("${swagger.service.contact.email:1394997@qq.com}") @Value("${swagger.service.contact.email:1394997@qq.com}")
private String contactEmail; private String contactEmail;
@Value("${swagger.cors.registry.enabled:true}")
private Boolean corsRegistryEnabled;
@Bean @Bean
public Docket createRestApi() { public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
...@@ -78,9 +81,11 @@ public class SwaggerConfiguration implements WebMvcConfigurer { ...@@ -78,9 +81,11 @@ public class SwaggerConfiguration implements WebMvcConfigurer {
// 解决跨域问题 // 解决跨域问题
@Override @Override
public void addCorsMappings(CorsRegistry registry) { public void addCorsMappings(CorsRegistry registry) {
if (corsRegistryEnabled) {
registry.addMapping("/**") registry.addMapping("/**")
.allowedHeaders("*") .allowedHeaders("*")
.allowedMethods("*") .allowedMethods("*")
.allowedOrigins("*"); .allowedOrigins("*");
} }
}
} }
\ No newline at end of file
...@@ -9,13 +9,6 @@ package com.nepxion.discovery.plugin.admincenter.configuration; ...@@ -9,13 +9,6 @@ package com.nepxion.discovery.plugin.admincenter.configuration;
* @version 1.0 * @version 1.0
*/ */
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestHandlerSelectors;
...@@ -25,6 +18,13 @@ import springfox.documentation.spi.DocumentationType; ...@@ -25,6 +18,13 @@ import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
@ConditionalOnClass(name = { "javax.servlet.ServletContext" }) // 适配Spring Cloud Api Gateway,不装载Swagger @ConditionalOnClass(name = { "javax.servlet.ServletContext" }) // 适配Spring Cloud Api Gateway,不装载Swagger
...@@ -56,6 +56,9 @@ public class SwaggerConfiguration implements WebMvcConfigurer { ...@@ -56,6 +56,9 @@ public class SwaggerConfiguration implements WebMvcConfigurer {
@Value("${swagger.service.contact.email:1394997@qq.com}") @Value("${swagger.service.contact.email:1394997@qq.com}")
private String contactEmail; private String contactEmail;
@Value("${swagger.cors.registry.enabled:true}")
private Boolean corsRegistryEnabled;
@Bean @Bean
public Docket createRestApi() { public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
...@@ -80,9 +83,11 @@ public class SwaggerConfiguration implements WebMvcConfigurer { ...@@ -80,9 +83,11 @@ public class SwaggerConfiguration implements WebMvcConfigurer {
// 解决跨域问题 // 解决跨域问题
@Override @Override
public void addCorsMappings(CorsRegistry registry) { public void addCorsMappings(CorsRegistry registry) {
if (corsRegistryEnabled) {
registry.addMapping("/**") registry.addMapping("/**")
.allowedHeaders("*") .allowedHeaders("*")
.allowedMethods("*") .allowedMethods("*")
.allowedOrigins("*"); .allowedOrigins("*");
} }
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment