我正在使用 Quarkus (1.3.2.Final) 开发一个新的 REST 服务,并且我正在尝试将 Firebase 身份验证与 Smallrye-Jwt 集成,但它失败了。
我的第一次尝试是将 publickey.location 指向 Google 的 URL,但它失败了,因为有两个密钥,并且检查签名的正确 publicKey 取决于 jwt "kid" 标头值:
mp.jwt.verify.publickey.location=https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com
mp.jwt.verify.issuer=https://securetoken.google.com/<projectId>
quarkus.smallrye-jwt.auth-mechanism=MP-JWT
quarkus.smallrye-jwt.enabled=true
我的第二次尝试是创建一个服务(“PublicKeyResolver”的种类)来请求 google 的 url 并根据“kid”声明值提取正确的公钥:
mp.jwt.verify.publickey.location=http://localhost:8080/api/certs/publicKey
该策略失败,因为“授权”http 标头未包含在对 publicKey 的请求中。
有没有办法集成 Quarkus 和 Firebase 身份验证?