Определение открытого API Swagger не работает с Micronaut JWT security Micronaut версии 2.2.1

#java #swagger #swagger-ui #micronaut #micronaut-client

#java #swagger #swagger-пользовательский интерфейс #micronaut #micronaut-клиент

Вопрос:

Использование Micronaut 2.2.1 с открытым API JWT security и swagger. Определение контроллера не работает, как показано ниже

введите описание изображения здесь

Application.yml

 micronaut:
  application:
    name: demo
  security:
    enabled: true
    intercept-url-map:
      - pattern: /swagger-ui/**
        access:
          - isAnonymous()
  router:
    static-resources:
      swagger:
        paths: classpath:META-INF/swagger
        mapping: /swagger/**
      swagger-ui:
        paths: classpath:META-INF/swagger/views/swagger-ui
        mapping: /swagger-ui/**
 

Контроллер

 @Secured(SecurityRule.IS_ANONYMOUS)
@Controller("/product")
public record ProductController(IProducer iProducer) {
    @Get(uri = "/{text}")
    public Single<String> get(String text){
        return iProducer.sendText(text);
    }
}
 

api.service.yml

 openapi: 3.0.1
info:
  title: API service
  description: My API
  contact:
    name: Fred
    url: https://gigantic-server.com
    email: Fred@gigagantic-server.com
  license:
    name: Apache 2.0
    url: https://foo.bar
  version: "0.0"
paths:
  /product/{text}:
    get:
      operationId: get
      parameters:
      - name: text
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: get 200 response
          content:
            application/json:
              schema:
                type: string
 

Ответ №1:

Я пропустил

 intercept-url-map:
      - pattern: /swagger-ui/**
        httpMethod: GET
        access:
          - isAnonymous()
      - pattern: /swagger/**
        access:
          - isAnonymous()