Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Não consigo acessar o swagger

Estou utilizando um swagger mais novo, o 3.0 e também o Spring Security atualizado. Mesmo quando eu libero ele, dá erro 403 de que não estou autorizado, segue abaixo meus codigos:

Método de autorização : a linha anyRequest().authenticated() está bloqueando o swagger eu não sei pq.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Método para liberar o swagger :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Configuração do Swagger :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Dependencia no POM :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Erro do navegador :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obs : Oq está bloqueando, como já disse é o anyRequests().authenticated, n sei oq mais fazer, inclusive na print que vou mandar abaixo, onde não tem esse "nyRequests().authenticated", funciona tudo normal.

Print :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

11 respostas

Oi Victor,

Acho que na verdade o endereço que você deveria acessar no navegador deve ser: http://localhost:8080/swagger-ui.html e não /swagger-ui/index.html

O erro continua o mesmo, eu digito o recurso http://localhost:8080/swagger-ui.html e automaticamente vai para o /swagger-ui/index.html. Como dito , imagino que seja um problema de atualização dentro da classe filterChain. tudo acontece pcausa da linha .anyRequest.authenticated(). Já estou quase 1 semana tentando resolver o erro e não consigo de jeito nenhum, se puderem me ajudar pfv.

Tentei fazer assim :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

mas acontece isso : Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi Victor,

As urls para serem ignoradas:

web.ignoring().antMatchers("/swagger-ui/**", "/v3/api-docs/**");

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Continua o mesmo erro, não sei mais oq fazer!, lembrando : quando triro o .anyRequest.authenticated() funciona direitinho.

Me ajudem pfv, não sei mais oq fazer.

Inclusive eu retirei o seguinte método :

@Bean default WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring().antMatchers ("/v2/api-docs", "/configuration/ui", "/swagger-resources/", "/configuration/security", "/swagger-ui.html", "/webjars/","/h2-console/**"); }

e o swagger continuou funcionando normalmente. oque está bloqueando ele é o anyRequest.authenticated() apenas.

ta no teu github o projeto? acho que baixando e executando vai ficar melhor de entender o problema e ajudar

https://github.com/Almadavic/ErroSwaggerRodrigoAlura

Lembrando : o .anyRequest.authenticated() não está bloqueando o h2 que está no mesmo metodo dos comandos staticos mas está bloqueando o swagger.

Pra mim aqui funcionou.

Baixei o teu projeto e alterei o método webSecurityCustomizer da classe SecurityConfigurationsDevMustImplement:

 @Bean
default WebSecurityCustomizer webSecurityCustomizer() {
    return (web) -> web.ignoring().antMatchers("/swagger-ui/**", "/v3/api-docs/**");
}

Depois entrei no swaager e deu certo: http://localhost:8080/swagger-ui/index.html

Lembrando que tua classe SecurityConfigurations está configurada para ser carregada apenas nos profiles test e prod.

Muito obrigado mas ainda não entendi oq eu tinha feito de errado então.

solução!

Aqui no meu agora também funcionou! Mas não sei oq tinha feito de errado, pois coloquei as infos : Insira aqui a descrição dessa imagem para ajudar na acessibilidade e aquela hora não tinha funcionado e agora sim.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software