【问题标题】:org.keycloak.common.VerificationException: Invalid token issuerorg.keycloak.common.VerificationException:无效的令牌发行者
【发布时间】:2017-06-24 17:14:59
【问题描述】:

我正在开发一个使用我的 REST 后端的 Android 应用。后端在 JBoss 实例上运行,该实例通过 Keycloak 进行保护。由于我已将 Keycloak 从 1.0.7 更新到 2.1.5,因此我遇到了以下问题。 如果我尝试调用后端的 REST API,JBoss 会写入以下日志:

        [org.keycloak.adapters.BearerTokenRequestAuthenticator] (default task-39) 
Failed to verify token: org.keycloak.common.VerificationException: Invalid token issuer.
            Expected 'http://localhost:8180/auth/realms/myrealm', but was 'http://192.168.178.24:8180/auth/realms/myrealm'
            at org.keycloak.TokenVerifier.verify(TokenVerifier.java:156)
            at org.keycloak.RSATokenVerifier.verify(RSATokenVerifier.java:89)

192.168.178.24 是正确的 IP 地址。好像是配置问题,请问这个地址在哪里配置呢?

有人知道如何解决这个问题吗?

【问题讨论】:

  • 你找到解决办法了吗?
  • 同样的问题,你解决了吗?

标签: keycloak


【解决方案1】:

非常简单的解决方案:确保当您的任何组件与 Keycloak 服务器联系时,它们使用相同的 url


详细解释:

对于您的情况(与我的情况相同),您的 Android 应用似乎正在向 http://192.168.178.24:8180/... 发出 http 请求您的服务器正在请求(或至少配置为)http://192.168.178.24:8180/...。所以改变你的服务器,让它请求http://192.168.178.24:8180/...

附:异常似乎是预期的行为to avoid some attacks

【讨论】:

    【解决方案2】:

    如果您查看实现,这里会抛出您的异常。

    public static class RealmUrlCheck implements Predicate<JsonWebToken> {
    
        private static final RealmUrlCheck NULL_INSTANCE = new RealmUrlCheck(null);
    
        private final String realmUrl;
    
        public RealmUrlCheck(String realmUrl) {
            this.realmUrl = realmUrl;
        }
    
        @Override
        public boolean test(JsonWebToken t) throws VerificationException {
            if (this.realmUrl == null) {
                throw new VerificationException("Realm URL not set");
            }
    
            if (! this.realmUrl.equals(t.getIssuer())) {
                throw new VerificationException("Invalid token issuer. Expected '" + this.realmUrl + "', but was '" + t.getIssuer() + "'");
            }
    
            return true;
        }
    };
    

    我认为您的客户端配置不正确。您是否拥有与 Keycloak 中相同的客户端?

    猜你喜欢
    • 2020-09-09
    • 2022-10-14
    • 2020-10-16
    • 2021-03-03
    • 2021-06-16
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    相关资源
    最近更新 更多