升级jhipster后JWT签名无效



我用jhipster(4.14.5(构建了两个微服务应用程序,今天我将两者都更新到了5.1.0。带有jhister注册表的最后一个docker映像(4.0.0(

所有这些都按预期工作,但带有jwt签名的API调用不再工作。

MyRequestInterceptor

@Override
public void apply(RequestTemplate requestTemplate) {
String secret= Jwts.builder()
.setSubject("admin")
.claim("auth", AuthoritiesConstants.ADMIN)
.signWith(SignatureAlgorithm.HS512, properties.getSecurity().getAuthentication().getJwt().getSecret())
.compact();
requestTemplate.header(JWTConfigurer.AUTHORIZATION_HEADER, "Bearer " + secret);
}

jhipster 5.1.0与JWT有什么新功能?我应该更改算法签名还是如何修复?

是的,我们改变了密钥的处理方式,请查看此处的源代码。

不同的是,现在JWT密钥是用Base64编码的(这就是我们在这里创建编码器的原因(。

这最初是我的错:JJWT的.signWith()方法接受了一个String,所以我只是给出了密钥(这是一个String(。但是,如果您查看该方法的文档,您会注意到这个String应该用Base64编码。所以现在你必须在任何地方使用密钥的编码版本。事实上,它最终并没有改变任何东西,但它只是正确地使用API。

最新更新