gpt4 book ai didi

spring-boot - 我如何使用 Keycloak 解码 JWT

转载 作者:行者123 更新时间:2023-12-04 22:40:09 25 4
gpt4 key购买 nike

我在我的应用程序中使用带有 Spring-Boot 的 Keycloak。我的浏览器客户端请求 keycloak 生成 JWT,然后将此 JWT 发送到我的 ZUUL 服务器,该服务器使用 keycloak-spring 适配器验证 JWT,然后我编写了一个预过滤器来解码 JWT 有效负载并提取用户名。
我正在使用 com.auth0.java-jwt 库来解码 JWT,如下面的代码片段所示

 DecodedJWT dJWT=JWT.decode(header);
String username=dJWT.getClaim("preferred_username").asString();

我想知道是否可以在不使用外部库的情况下做到这一点。我想使用 keycloak 库来显式解码 JWT。我怎样才能做到这一点?

最佳答案

您必须将 keycloak 的核心库包含在您的依赖项中。
Gradle :compileOnly 'org.keycloak:keycloak-core:3.4.2.Final'
然后使用 org.keycloak.RSATokenVerifier 解析 token 。
例子:

try
{
AccessToken token = RSATokenVerifier.create(tokenString).getToken();
System.out.printf("iss = %s%n", token.getIssuer());
System.out.printf("sub = %s%n", token.getSubject());
System.out.printf("typ = %s%n", token.getType());
}
catch (VerificationException e)
{
// some error handling
}

您还可以通过设置公钥来激活 RSATokenVerifier 上的各种验证,特别是签名验证:
RSATokenVerifier.create(tokenString).checkActive(true).publicKey(key).verify().getToken()

关于spring-boot - 我如何使用 Keycloak 解码 JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48107994/

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