依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
问题
之后我们启动项目,打开我们的swagger页面,打不开,发现自动跳转到以下界面
这是由于security自己有认证 界面,只有登录成功之后才可以进行其他接口访问。
解决办法
一、使用默认账号密码
默认的Username为user,password为项目启动时打印出来的一串字符
二、自己配置账号密码
在yml中配置即可
spring:
security:
user:
name: test
password: 123
roles: ADMIN
三、在启动项使用注解
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
四、集成WebSecurityConfigurerAdapter重写configure方法
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//可以写一些其他配置
http.authorizeRequests()
// 如果有允许匿名的url,填在下面
//.antMatchers().permitAll()
.anyRequest().authenticated().and()
// 设置登陆页
.formLogin().loginPage("/login")
.successHandler(customAuthenticationSuccessHandler)
.failureHandler(customAuthenticationFailureHandler)
// .failureUrl("/login/error")
// .defaultSuccessUrl("/")
.permitAll();
http.csrf().disable();
}
}