To usando a versao 2.6.6 do Spring Boot e nessa versão mesmo colocando essa diretiva no arquivo de properties nao funcionou: spring.mvc.pathmatch.matching-strategy=ant_path_matcher
Só consegui resolver fazendo a troca do Swagger2 pro SpringDoc (https://springdoc.org/#Introduction). Mais especificamente a versao abaixo:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.7</version>
</dependency>
Feito isso, é preciso adicionar as seguintes diretivas:
swagger-ui custom path
springdoc.swagger-ui.path=/swagger-ui.html springdoc.packagesToScan=br.com.alura.forum
Na classe de SwaggerConfiguration eu tive adicionar o seguinte codigo:
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("forumApi")
.pathsToMatch("/**")
.build();
}
@Bean
public OpenAPI forumAluraOpenAPI() {
return new OpenAPI()
.info(new Info().title("Forum API")
.description("Projeto de Documentacao de API da Alura")
.version("v0.0.1")
.license(new License().name("Apache 2.0").url("http://springdoc.org")))
.components(new Components().addSecuritySchemes("bearer-key", new SecurityScheme().type(SecurityScheme.Type.HTTP)
.scheme("bearer")
.bearerFormat("JWT")))
.externalDocs(new ExternalDocumentation()
.description("SpringShop Wiki Documentation")
.url("https://springshop.wiki.github.org/docs"));
}
E por fim ainda tive que ajustar o metodo configure() no SecurityConfiguration
//Static resources configuration (css, js, img, etc.)
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers("/**.html",
"/v3/api-docs/**",
"/webjars/**",
"/configuration/**",
"/swagger-resources/**",
"/swagger-ui/**");
}
Mas a mecanica de envio do Token JWT eu nao consegui reproduzir. Como seria isso nessa versao do SpringDoc?