Olá caros, tive um problema com meu sistema operacional (Windows 10) e tive que formatar meu computador. Estou programando no Eclipse com JAVA no Spring Boot e coloquei o Swagger. Quando eu subo para servidor, depois de ter compilado (java -jar target/nomeDoArquivo.Jar) e tento abrir o Swagger (http://localhost:8080/swagger-ui) da este erro “O acesso a localhost foi recusado” no navegador.
HTTP ERROR 403
Como eu resolvo isto?
Vc está com a dependência do spring-security no projeto? Se sim, vc deve configurar para que toda requisição ao swagger não precise de autenticação.
Try
Tenho estas:
<!-- Dependencias para autenticação com JWT --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.2</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><scope>test</scope></dependency>
Lucas_Camara1 like
Então é o que falei msm. Ao adicionar a dependência do spring-security (spring-boot-starter-security), automaticamente suas rotas já ficarão seguras, até a do swagger.
Com isso, vc deve fazer a liberação através de uma configuração. É algo mais ou menos assim:
Porém, isso pode mudar de acordo com a versão do spring e do swagger que vc está usando. De qualquer forma, tu pode pesquisar por spring security allow swagger que vc vai achar bastante coisa.
importorg.springframework.context.annotation.Configuration;importorg.springframework.http.HttpMethod;importorg.springframework.security.config.annotation.web.builders.HttpSecurity;importorg.springframework.security.config.annotation.web.builders.WebSecurity;importorg.springframework.security.config.annotation.web.configuration.EnableWebSecurity;importorg.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;importorg.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;importbr.com.cotiinformatica.security.JwtSecurity;@Configuration@EnableWebSecuritypublicclassJwtConfigurationextendsWebSecurityConfigurerAdapter{@Overrideprotectedvoidconfigure(HttpSecurityhttp)throwsException{http.csrf().disable().addFilterAfter(newJwtSecurity(),UsernamePasswordAuthenticationFilter.class).authorizeRequests().antMatchers(HttpMethod.POST,"/api/clientes-login").permitAll().antMatchers(HttpMethod.POST,"/api/clientes").permitAll().antMatchers(HttpMethod.OPTIONS,"/**").permitAll().anyRequest().authenticated();}// configuração para liberar a documentação do SWAGGERprivatestaticfinalString[]SWAGGER={"/v2/api-docs","/swagger-resources","/swagger-resources/**","/configuration/ui","/configuration/security","/swagger-ui.html","/webjars/**","/v3/api-docs/**","/swagger-ui/**"};@Overridepublicvoidconfigure(WebSecurityweb)throwsException{web.ignoring().antMatchers(SWAGGER);}}
importjava.util.Collections;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importspringfox.documentation.builders.PathSelectors;importspringfox.documentation.builders.RequestHandlerSelectors;importspringfox.documentation.service.ApiInfo;importspringfox.documentation.service.Contact;importspringfox.documentation.spi.DocumentationType;importspringfox.documentation.spring.web.plugins.Docket;importspringfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2publicclassSwaggerConfiguration{@BeanpublicDocketapi(){returnnewDocket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("br.com.eueu")).paths(PathSelectors.ant("/**")).build().apiInfo(apiInfo());}privateApiInfoapiInfo(){returnnewApiInfo("ECommerce","Sistema de API desenvolvido em SprignBoot com Hibernate e JPA","Versão 1.0","http://www.eueueu.com.br",newContact("EU Informática","http://www.eueueueueu.com.br","[email removido]"),"Licença da API","http://www.eueueueu.com.br",Collections.emptyList());}}
Try
Este sistema funcionava na minha máquina, foi depois da formatação e que ficou assim, dando acesso recusado no navegado.
Lucas_Camara
Não preocupe com configuração de CORS. A parte que vc tem que alterar é a do spring-security apenas (onde tem o @EnableWebSecurity).
Tem que adicionar mais um permitAll para as url do swagger, ex:
Eu fiz, mas continuou dando " O acesso a localhost foi recusado" -
Será que é o firewall?
Solucao aceita
Try1 like
Poxa, que mancada! Estava acessando o link errado . Espero que este poster possa ajudar alguém, o link correto http://localhost:8080/swagger-ui/index.html