在 WSO2AM-2.6.0(6.x 分支)中为后端服务启用 JWT 签名
<JWTConfiguration>
<EnableJWTGeneration>true</EnableJWTGeneration>
<JWTHeader>X-JWT-Assertion</JWTHeader>
<SignatureAlgorithm>SHA256withRSA</SignatureAlgorithm>
<JWTGeneratorImpl>org.wso2.carbon.apimgt.keymgt.token.JWTGenerator</JWTGeneratorImpl>
但是 - 开发人员抱怨签名无效(根据 JOSE 库)。我在jwt.io页面中测试了令牌,它还声称签名无效。
我从以前的版本(wso2am-2.1.0)中看到签名生成发生了变化(不使用任何外部框架),但是对于更改,其他框架(jose,jwt.io)认为签名无效
有什么方法可以配置 wso2am 以创建有效(有效)签名?
编辑:
我看到 JWT 令牌仅使用 APIMJWTGenerator 进行签名,尽管它无助于使令牌有效
例外是
"stacktrace": "org.jose4j.jwt.consumer.InvalidJwtException:
Unable to process JOSE object (cause: org.jose4j.lang.UnresolvableKeyException:
The X.509 Certificate Thumbprint header(s) in the JWS do not identify any of the provided Certificates - x5t=NTA3YzJmZDk0OTg4N2ViNWRlY2M4N2NlMDdjMmNlNjliOTRkYjM1OA vs. SHA-1 thumbs:[UHwv2UmIfrXezIfOB8LOablNs1g].)
验证是否与x5t标头属性有关?
Edit2:显然 xt5t 标头应包含 SHA-1 证书签名,提供的值NTA3YzJmZDk0OTg4N2ViNWRlY2M4N2NlMDdjMmNlNjliOTRkYjM1OA
太长而不能成为 SHA-1 或无效
编辑3:
似乎问题与https://github.com/wso2/carbon-apimgt/issues/5535有关,该修复显然破坏了与后端服务的兼容性(以及使用的框架,准备修复)