keycloak.js 与应用程序捆绑时出现错误,但其他情况下没有

Error when keycloak.js is bundled with application but not otherwise

我在使用 keycloak.js、

时遇到以下问题

场景 1:

在我的应用程序 index.html(捆绑在 JAR 文件中并部署在 Jetty 中)中,我有以下代码:

<script src="keycloak.js"></script>

<script>
  var keycloak = Keycloak({
    "realm": "master",
    "clientId": "client1",
    "auth-server-url": "http://<<keycloak-server-ip>>:<<port>>/auth",
    "public-count": true
    });

  keycloak.init({
      onLoad: 'login-required'
  }).success(function () {
     alert("login success");
  });

</script>

我在 Keycloak 服务器中有以下客户端配置

Client Protocol - openid-connect
Access Type - public 
Standard Flow Enabled - ON
Implicit Flow Enabled - OFF
Direct Access Grants Enabled - ON
Authorization Enabled - OFF
Root URL -
Valid Redirect URIs - http://<<myapplicationIP>>:<<myapplicationPort>>/admin/*
Base URL - http://<<myapplicationIP>>:<<myapplicationPort>>/admin
Admin URL -
Web Origins -

这个配置,第一次打的时候

http://<myapplicationIP>:<myapplicationPort>/admin/ ,

我被重定向到

http://<<myapplicationIP>>:<<myapplicationPort>>/realms/master/protocol/openid-connect
/auth?client_id=client1&redirect_uri=http%3A%2F%2F<<myapplicationIP>>%3A<<myapplicationPort>>%2Fadmin%2F&state=c524eb6c-9245-4f82-87e9-e767dd733b0d&nonce=760809b5-b2d5-4c3e-9d76-40cd43bdef0d&response_mode=fragment&response_type=code&scope=openid

我得到 404,这是预期的,因为 keycloak 正试图重定向到

http://<<myapplicationIP>>:<<myapplicationPort>>/realms/... 

我的申请中不存在。

场景二:

当我执行与场景 1 相同的操作时,除以下内容外,一切正常。

<script src="http://<<keycloakServerIP>>:<<keycloakServerPort>>/auth/js/keycloak.js"></script>

那么,捆绑 keycloak.js 和在 运行 时加载它在操作上有什么不同?

使用 url 而不是 auth-server-url ,这里也有答案:http://lists.jboss.org/pipermail/keycloak-user/2017-July/011109.html