Swagger + Spring security
Incluir anotação @SecurityScheme na classe de configuração
@OpenAPIDefinition
@Configuration
@SecurityScheme(name = "bearerAuth", type = SecuritySchemeType.HTTP, scheme = "bearer")
public class OpenApiConfig {
@Bean
public OpenAPI dsmovieAPI() {
return new OpenAPI()
.info(new Info()
.title("DSMovie API")
.description("DSMovie Reference Project")
.version("v0.0.1")
.license(new License()
.name("Apache 2.0")
.url("https://github.com/devsuperior/dsmovie-ref")));
}
}
O nome que você define em "name" no @SecurityScheme, você deve reutilizar nos endpoints.
Incluir anotação @SecurityRequirement nos endpoints protegidos
@SecurityRequirement(name = "bearerAuth")
@DeleteMapping(value = "/{id}")
public ResponseEntity<MovieDTO> delete(@PathVariable Long id) {
Ao colocar isso, a requisição no Swagger ficará com um cadeado, e se colocarmos para executar, precisaremos fornecer um token (para isso é só logar no postman e copiar o token).
Atualizado