gpt4 book ai didi

java - 无法验证在 Java Spring Boot 应用程序中使用 .Net Core 生成的 JWT token 的签名

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:11 25 4
gpt4 key购买 nike

我们在 .NET Core 中生成了 Bearer JWT token ,并使用 Powershell 生成的 X509 自签名证书的 pfx 对该 token 进行了签名。

我们需要验证 Springboot Java 应用程序中的 token 签名。为了实现这一点,我们使用 Java 中的 key 工具将 pfx 导入到 java keystore (jks) 中。

keytool -importkeystore -srckeystore "certificate.pfx" -srcstoretype pkcs12 -destkeystore "clientcert.jks" -deststoretype JKS

我们正在资源服务器中验证 token 签名,其中 JwtAccessTokenConverter 配置如下。

JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
InputStream inJksStream = null;
InputStream inputJksStream = null;
inJksStream = new FileInputStream("clientcert.jks");
inputJksStream = new BufferedInputStream(inJksStream);
KeyStore trustStore = KeyStore.getInstance("jks");
trustStore.load(inputJksStream, "password".toCharArray());
Key trustStorePrivateKey = trustStore.getKey("alias-value", "password".toCharArray());
converter.setSigningKey(Base64.getEncoder().encodeToString(trustStorePrivateKey.getEncoded()));

应用程序中的 Controller 使用以下元素进行装饰。@PreAuthorize("isAuthenticated()")

但是,当有效的 JWT token 与请求一起传递到 Springboot 应用程序时,我们会遇到签名无效异常。

这是在 Springboot 中验证 Bearer JWT token 的适当方法吗?

最佳答案

我刚刚在使用 IdentiyServer4 发布 JWT 时遇到了类似的问题。如果我可以看到您的错误的输出,我也许可以提供帮助。

关于java - 无法验证在 Java Spring Boot 应用程序中使用 .Net Core 生成的 JWT token 的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com