1
resposta

Problema ao liberar requisição "swagger-ui.html"

Olá, conseguem me ajudar nessa por favor?

Em "securityConfigurations.java" fiz a liberação das requisições para acesso a documentação. Obtive sucesso ao acessar "v3/api-docs", é retornado um json corretamente, porém não consigo liberar a requisição para o Swagger.

Estou utilizando a versão 2.0.2 do spring doc, conforme códigos abaixo.

pom.xml

<dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
            <version>2.0.2</version>
        </dependency>

SecurityConfigurations

 @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        return http.csrf().disable()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and().authorizeHttpRequests()
                .requestMatchers(HttpMethod.POST, "/login").permitAll()
                .requestMatchers("/v3/api-docs/**", "/swagger-ui.html", "/swagger-ui/**").permitAll()
                .anyRequest().authenticated()
                .and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
                .build();
    }
1 resposta

Olá, Felipe

A partir da versão 2.0.2 do Springdoc, a URL do Swagger UI mudou para "/swagger-ui/index.html" ao invés de "/swagger-ui.html". Portanto, você deve alterar a configuração em seu código para refletir essa mudança.

Aqui está como seu código deveria ficar:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http.csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and().authorizeHttpRequests()
            .requestMatchers(HttpMethod.POST, "/login").permitAll()
            .requestMatchers("/v3/api-docs/**", "/swagger-ui/index.html", "/swagger-ui/**").permitAll()
            .anyRequest().authenticated()
            .and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
            .build();
}

Tente fazer essa alteração e veja se resolve o seu problema.

Espero ter ajudado e bons estudos!