wso2am-2.6.0无效的jwt签名

时间:2018-12-04 10:39:55

标签: wso2 jwt wso2-am jose4j jose

在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令牌仅使用API​​MJWTGenerator签名,尽管这并不能使令牌有效

例外是

"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或无效

Edit3:

该问题似乎与https://github.com/wso2/carbon-apimgt/issues/5535有关,该修复严重破坏了与后端服务(以及使用的框架,准备修复)的兼容性

1 个答案:

答案 0 :(得分:0)

用拉力https://github.com/gusto2/carbon-apimgt/pull/1固定(可能不完美,但可以正常工作并经过测试)