升级jhipster后JWT签名无效

升级jhipster后JWT签名无效,jwt,jhipster,jhipster-registry,Jwt,Jhipster,Jhipster Registry,我用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() .se

我用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()
方法接受一个字符串,所以我只是给出了一个密钥(这是一个字符串)。但是如果您查看该方法的文档,就会注意到该字符串应该用Base64编码。因此,现在您必须在任何地方使用加密版本的密钥。事实上,它最终不会改变任何东西,只是为了正确使用API。

哪个应用程序显示了错误?我很确定JWT没有发生任何变化。被调用的应用程序发送错误,iti就是暴露其API的那个。调用应用程序将相同的承载器发送到旧版本中。我刚刚使用jhipster注册表、uaa和gateway micro service应用程序从头生成了一个项目,我非常确定我遇到了与此新配置相关的错误。我没有注意到Jhipper注册表文档中有任何更新,也许现在我们必须使用加密字符串传递一些参数??或者这是一个必须报告为bug的问题?因为它也发生在新项目中