1
resposta

Acesso negado no navegador após a configuração do /swagger-ui.html

Olá, boa noite!

Realizei a configuração do swagger dentro do security de acordo com o curso Spring boot 3.

Mas tenho enfrentado um problema, quando tento realizar o acesso meu acesso é negado impossibilitando a visualização do HTML.

O código configurado seria este abaixo

@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { return http.csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and().authorizeRequests() .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á, João. Tudo bem?

Pelo que vejo em seu código, você está tentando permitir o acesso a certos caminhos, incluindo o do Swagger. No entanto, pode haver um pequeno erro na sua configuração. Você está usando requestMatchers para permitir o acesso, mas talvez você devesse tentar usar antMatchers em vez disso.

Aqui está um exemplo de como o código poderia ser alterado:

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

O método antMatchers é geralmente usado para combinar solicitações HTTP com base em padrões de caminho de URL usando curingas. Isso deve permitir que você acesse o Swagger sem problemas.

Espero ter ajudado e bons estudos!