我想告诉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
之类的路径旁边看不到锁定图标。