quarkus.security.jaxrs.deny-unannotated-endpoints=true是否覆盖@TestSecurity配置?
现象判定
该情况属于预期行为,并非@TestSecurity注解失效。
根因说明
quarkus.security.jaxrs.deny-unannotated-endpoints=true配置的校验逻辑优先级更高,它的作用是强制要求所有JAX-RS端点必须显式标注@PermitAll/@RolesAllowed/@DenyAll等JSR-250安全注解,未标注的端点会在权限校验的前置阶段直接被拦截返回401,该阶段不会读取@TestSecurity注解的authorizationEnabled配置。@TestSecurity(authorizationEnabled = false)的作用是跳过后续的授权校验逻辑,但是无法跳过上述「未注解端点拦截」的前置校验规则。
修复方案
可选两种方案处理:
- 给对应的业务REST端点显式添加
@PermitAll注解,测试阶段@TestSecurity的配置即可正常生效 - 在测试环境的配置文件中单独添加
quarkus.security.jaxrs.deny-unannotated-endpoints=false,覆盖生产环境的全局安全配置
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

