Безопасность Swagger - помечать подпуть как общедоступный, если родитель является частным? Например, / API / Public/** и / API / **

Я хотел бы сказать Swagger (через Java), что набор путей требует аутентификации, например /api/** но это не конкретный подпуть, например /api/public/**,

Я думал, что можно было бы добавить SecurityContext за /api/public/** вот так:

SecurityContext.builder()
    .securityReferences(new ArrayList<>())
    .forPaths(PathSelectors.ant("/api/public/**"))
    .build()

Т.е. в дополнение к контексту, который я построил для /api/** Я мог бы добавить один для /api/public/**без ссылок безопасности, и что если бы я понял порядок, то этот дополнительный контекст соответствовал бы любому подходящему пути, а не /api/** контекст.

Но это не то, как все работает - когда сопоставление происходит, оно не просто останавливается на первом совпадении, оно фактически ищет все совпадения. Так что путь как /api/public/foo будет соответствовать как /api/* а также /api/public/** контекст.

Так есть ли способ достичь того, что я хочу, то есть, когда я использую Swagger UI, я бы не хотел видеть значок блокировки рядом с такими путями, как /api/public/foo,

0 ответов

Другие вопросы по тегам