关于 Swagger2 已配置登录账号密码,登录却始终账号或密码错误问题解决
今日遇到一个很睿智的问题,一项目正准备动工,我在 springboot 里面集成了 Swagger Api 文档生成框架,想着不能让任何人访问,需要加个账号密码登录,然后呢我就按照开发文档的操作在 yml 里面配置访问需要的账号密码,奇怪的事情发生了,我设置的账号密码始终登录不进,一直报账号或密码错误,然后我又把配置的账号密码删除,这下总能访问了吧,结果怎么着,还是出现了需要登录的页面,我当时有点蒙,最后也总算是找到问题了。(其实我觉得挺弱智的,但想着还是记录一下,以防日后有哪位道友也和我一样懵逼,困住好一会呢)
太久没写项目,手法有些生疏了,其实swagger的登录界面不是这个样子,这个是spring security的登录界面,在没有对 spring-security 进行配置的情况下,默认是拦截所有请求,所以输入swagger的账号密码都是错误的。那怎么解决呢?
spring security 配置中对 swagger 路径设置无条件放行:
@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/swagger-ui.html").permitAll()
.antMatchers("/wabjars/**").permitAll()
.antMatchers("/swagger-resources/**").permitAll()
.antMatchers("/v2/**").permitAll();
}
}
王艺钧: 感谢博主,踩了第三个坑。
qq_37087568: 救了大命
zhuo21hahaha: 设置 force-ssl有用
2301_81466237: 你好 如果显示incorrect string value怎么解决呢
lele_1018: 你好!我想问一下为什么明明能给调试助手发数据 但是还是会弹系统异常 请重启呢