赞
踩
由于集成shiro 框架,然后开放了cookie ,在后台加了一个解决跨域问题的类,该类继承了WebMvcConfiguration ,导致swagger的映射失效。
原代码:
解决方案:重新继承 WebMvcConfigurationSupport
然后重写 addResourceHandlers 方法即可(源码由下)
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {
/**
* 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(
"classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations(
"classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
@Override
public void addCorsMappings(CorsRegistry registry) {
//设置允许跨域的路径
registry.addMapping("/**")
//设置允许跨域请求的域名
// .allowedOrigins("*")
.allowedOriginPatterns("*")
//这里:是否允许证书 不再默认开启
.allowCredentials(true)
//设置允许的方法
.allowedMethods("*")
//跨域允许时间
.maxAge(3600);
}
}
然后重启项目即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。