取消springsecurity默认的登录验证
问题描述
springboot 2.x,访问swagger-ui.html时,会自动跳转到springsecurity的login页,自定义过滤路径的拦截器无效。
解决方法一
修改依赖,项目因为使用了一些加密功能才引入springsecurity依赖,原依赖如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
查看所用到的类属于哪个jar包,就只引入相关jar包

修改后的依赖为
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</dependency>
既保留了所需功能,又去除了权限验证
方法二
禁用springsecurity的csrf验证
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeRequests()
.anyRequest()
.permitAll()
.and()
.logout()
.permitAll();
}
}
在SpringBoot 2.x中,访问swagger-ui.html时遭遇SpringSecurity的自动跳转,导致自定义拦截器失效。解决方法包括:1) 精简SpringSecurity依赖,仅引入必需的核心模块,避免权限验证;2) 在配置中禁用CSRF验证,并允许所有请求和注销操作。通过这两种方式可以避免不必要的登录验证干扰。
9085





