【问题标题】:what is the alternative for deprecated method org.keycloak.TokenVerifier.realmUrl()不推荐使用的方法 org.keycloak.TokenVerifier.realmUrl() 的替代方法是什么
【发布时间】:2021-11-16 18:04:41
【问题描述】:

我正在尝试使用以下代码验证 AccessToken -

TokenVerifier 验证器 = TokenVerifier.create(StringAccessToken, AccessToken.class).withDefaultChecks(); PublicKey publicKey = getRealmPublicKey(verifier.getHeader()); return verifier.realmUrl(“someStringUrl”).publicKey(publicKey).verify().getToken();

但似乎不推荐使用 realmUrl() 方法。您能否为此提供替代解决方案?

或者您能建议一种验证访问令牌的有效方法吗?

【问题讨论】:

  • 我找到了上述类的来源和弃用评论。 github.com/keycloak/keycloak/blob/master/core/src/main/java/org/…我不会害怕这个。如果该方法消失,您的代码将不再编译。你的背景是什么?你在springboot里面吗?你在验证一个 http 请求吗?
  • 我正在验证一个 http 请求。我正在尝试使用 keycloak 服务器的公钥验证令牌。得到了帮助解决问题的 keucloak 人员的以下回复 - 查看 org.keycloak.TokenVerifier#withChecks ,它采用谓词进行令牌验证。领域检查由 org.keycloak.TokenVerifier.RealmUrlCheck 执行
  • 如果您找到了问题的答案,最好将答案发布为答案而不是评论,以便其他人可以看到,问题已得到解答,并且不需要进一步的帮助。

标签: keycloak keycloak-connect keycloak-admin-cli keycloak-authorization-services


【解决方案1】:

我们可以使用 org.keycloak.TokenVerifier#withChecks,它采用谓词进行令牌验证。 领域检查由org.keycloak.TokenVerifier.RealmUrlCheck执行

修改后的代码是:

TokenVerifier<AccessToken> verifier = TokenVerifier.create(token, AccessToken.class).withChecks(new TokenVerifier.RealmUrlCheck(getRealmUrl()));
PublicKey publicKey = getRealmPublicKey(verifier.getHeader());
return verifier.publicKey(publicKey).verify().getToken();

【讨论】:

    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2012-03-03
    • 2019-03-19
    • 2018-03-21
    • 2022-06-16
    • 2013-12-30
    相关资源
    最近更新 更多