今日遇到一个很睿智的问题,一项目正准备动工,我在 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();
    }
}

在这里插入图片描述在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐