webmvcconfigurer放行swagger2
时间: 2023-09-08 17:11:44 浏览: 52
要在 WebMvcConfigurer 中放行 Swagger2,你需要在 addResourceHandlers 方法中添加以下代码:
```java
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
```
这个方法会将 Swagger UI 的静态文件映射到对应的 URL 路径中,以便在浏览器中访问。同时,你也可以使用 @EnableSwagger2 注解来启用 Swagger2 的自动配置。
相关问题
使用webmvcconfigurer的addInterceptor放行swagger
你可以在 `WebMvcConfigurer` 中使用 `addInterceptors` 方法添加拦截器,代码如下:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new HandlerInterceptorAdapter() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handler) throws Exception {
if (request.getRequestURI().startsWith("/swagger")) {
return true;
}
return super.preHandle(request, response, handler);
}
});
}
}
```
在上面的代码中,我们创建了一个匿名的 `HandlerInterceptorAdapter` 类,它会检查请求的 URI 是否以 `/swagger` 开头。如果是,则返回 `true`,否则返回 `false`。
最后,我们将这个拦截器添加到拦截器链中,这样就可以放行 Swagger 相关的请求了。
拦截器放行swagger2
为了在 Spring Boot 中放行 Swagger2,你需要创建一个拦截器并将其注册到拦截器链中。可以使用以下代码来创建一个拦截器:
```java
@Component
public class SwaggerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestUri = request.getRequestURI();
if ("/swagger-ui.html".equals(requestUri) || "/swagger-resources".equals(requestUri)) {
return true;
}
return false;
}
}
```
这个拦截器将在请求到达控制器之前执行,并检查请求的 URI 是否是 Swagger UI 的 URI。如果是,则返回 true,否则返回 false。
然后,你需要在 WebMvcConfigurer 中将拦截器添加到拦截器链中。可以使用以下代码:
```java
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private SwaggerInterceptor swaggerInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(swaggerInterceptor).addPathPatterns("/**");
}
}
```
这个方法将 SwaggerInterceptor 添加到拦截器链中,并将其应用于所有请求路径。这样,Swagger UI 的请求将被放行,而其他请求将被拦截。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)