正在从Springfox迁移Springdoc [重复]

r7xajy2e  于 2023-01-13  发布在  Spring
关注(0)|答案(1)|浏览(135)
    • 此问题在此处已有答案**:

How can I bypass authentication for Swagger-UI?(1个答案)
3天前关闭。
我正在做一个遗留项目(仍然使用Spring Boot 1. 5)。我们的团队负责升级项目,其中一项任务是将SpringFox更新为SpringDoc。
我已经更改了所有注解,我认为它可以工作,因为我可以使用/v3/api-docs URL获得YAML或JSON文件。
我认为我无法访问的是Swagger UI。在application.yml中,我添加了以下内容:

springdoc:
  api-docs:
    resolve-schema-properties: true
  swagger-ui:
    use-root-path: true
    validatorUrl: none
    path: /swagger-ui
    operationsSorter: alpha
    tagsSorter: alpha
    docExpansion: none

但每次我访问/swagger-ui/index.html/swagger-ui.html,它似乎得到了错误,由于安全或过滤器链。有安全依赖关系的项目。我是新手在这里,所以任何建议,我可以检查。如何调试?

cbeh67ev

cbeh67ev1#

您需要允许对Spring Security配置中的Swagger资源进行未经身份验证的访问。以下方法对我有效:

@Configuration
@EnableWebSecurity
class WebSecurityConfiguration {

    private static final String[] SWAGGER_PATHS = {"/swagger-ui.html", "/v3/api-docs/**", "/swagger-ui/**", "/webjars/swagger-ui/**"};

    private final UserRegistrationFilter authenticationTokenFilter;

    @Bean
    SecurityFilterChain filterChain(final HttpSecurity http) throws Exception {
        return http
            // Configure access rules
            .authorizeHttpRequests(authorize -> authorize
                .antMatchers(SWAGGER_PATHS).permitAll()
                .anyRequest().authenticated())

            // All your other config

            .build();
    }

}

相关问题