Spring MVC 禁止访问 Swagger UI 页面
为了禁止访问 Swagger UI 页面,在 Spring MVC 中可以采取以下步骤:
- 在 Spring MVC 的配置文件中,添加以下代码来禁止对 Swagger UI 页面的访问:
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui.html")
.setCachePeriod(0)
.addResourceLocations("classpath:/META-INF/resources/");
}
}
这段代码将 Swagger UI 页面的访问路径设置为'/swagger-ui.html',并将其映射到'classpath:/META-INF/resources/'目录下。同时还设置了缓存时间为 0,以确保每次访问时都从磁盘上加载最新的资源。
- 禁止 Swagger UI 页面的访问还可以通过配置 Spring Security 来实现。在 Spring Security 的配置文件中,添加以下代码:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/swagger-ui.html").denyAll()
.antMatchers("/swagger-resources/**").permitAll()
.antMatchers("/v2/api-docs").permitAll()
.anyRequest().authenticated()
.and().httpBasic();
}
}
这段代码将对 Swagger UI 页面的访问进行拒绝,并允许对 Swagger 资源和 API 文档的访问。同时,还对所有其他请求进行身份验证,以确保只有经过身份验证的用户才能访问应用程序的其他功能。
原文地址: https://www.cveoy.top/t/topic/lM7E 著作权归作者所有。请勿转载和采集!