You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus项目JWT鉴权不生效,application.properties变量未被识别如何解决

问题原因

你碰到的所有接口可匿名访问的问题,核心原因有两个:

  1. JWT密钥路径配置错误,导致JWT验证模块初始化失败,整套权限校验链路未生效
  2. 未配置全局默认授权策略,路径匹配规则未按预期生效
    另外IDE提示配置未被引用是IntelliJ Quarkus插件的索引问题,不影响实际运行。

解决步骤

1. 修正JWT密钥路径配置

你当前的公钥/私钥路径没有指定classpath:前缀,Quarkus会默认从文件系统根目录查找对应文件,找不到就会导致JWT模块初始化失败。将对应配置修改为:

# 前缀加classpath: 代表从项目类路径(src/main/resources下)查找文件
mp.jwt.verify.publickey.location=classpath:jwt/publicKey.pem
mp.jwt.verify.issuer=https://xxxxx.fr
quarkus.smallrye-jwt.enabled=true
smallrye.jwt.sign.key.location=classpath:jwt/privateKey.pem

同时确认你的密钥文件存放路径为src/main/resources/jwt/下。

2. 补充全局授权默认配置

在application.properties里增加默认拒绝策略,确保未明确配置为放行的路径都需要认证:

# 开启主动认证,未携带合法JWT的请求直接返回401
quarkus.http.auth.proactive=true
# 全局默认策略:未匹配到自定义权限规则的请求默认拒绝
quarkus.http.auth.permission.default-policy.paths=/*
quarkus.http.auth.permission.default-policy.policy=authenticated

如果你的需求是只有/api/bo/private/**下的接口需要认证,其余都放行,也可以把默认策略调整为permit,只保留你现有的admin权限配置即可。

3. 校验依赖完整性

你当前的pom依赖已经包含了必须的quarkus-smallrye-jwt和quarkus-smallrye-jwt-build,如果还是有问题,执行mvn clean install刷新依赖,确保所有依赖都被正确加载。如果项目启动时控制台有JWT初始化相关的报错,优先按报错提示排查密钥格式问题(比如公钥是否是PEM格式,有没有多余的换行或者空格)。

4. 忽略IDE配置未使用提示

IntelliJ的Quarkus插件偶尔会出现配置索引异常,只要你确认依赖已正确引入,直接忽略这个灰色提示即可,不影响实际运行效果。

内容的提问来源于stack exchange,提问作者sab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:45:04