Quarkus项目中如何正确配置SmallRye JWT签名密钥路径?
解决Quarkus中SmallRye JWT密钥路径配置错误
出现MalformedURLException的原因是SmallRye JWT解析smallrye.jwt.sign.key.location属性时,会将其视为URL格式处理,直接写相对路径jwt/privateKey.pem缺少协议标识,导致无法识别路径类型。根据你的密钥文件存放场景,有两种正确配置方式:
如果密钥文件需要打包到应用程序中:
把jwt/privateKey.pem移动到项目的src/main/resources目录下(最终路径为src/main/resources/jwt/privateKey.pem),然后配置:smallrye.jwt.sign.key.location=classpath:jwt/privateKey.pemclasspath:协议会告诉SmallRye从应用的类路径中查找密钥文件,这是生产环境推荐的方式。如果密钥文件仅在开发阶段放在项目根目录的jwt子目录:
直接在路径前添加file:协议标识,指定文件系统路径:smallrye.jwt.sign.key.location=file:jwt/privateKey.pem若需要绝对路径,也可以写成
file:/完整路径/projectFolder/jwt/privateKey.pem,但相对路径在开发时更灵活。
另外补充:之前根目录下的privateKey.pem能正常运行,是因为该文件恰好处于Quarkus默认扫描的类路径范围内,或者当前工作目录直接包含该文件,SmallRye隐式处理了路径识别;但子目录下的路径必须明确协议才能被正确解析。
内容的提问来源于stack exchange,提问作者Tristate
相关产品推荐
相关产品推荐

