将keycloak.js与应用程序捆绑在一起时出错,否则出错

时间:2017-07-02 16:56:38

标签: javascript keycloak

我在使用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/... 

我的申请中不存在。

场景2

当我执行与场景1相同的操作时,除了以下内容外,一切都按预期工作。

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

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

1 个答案:

答案 0 :(得分:1)

使用url代替auth-server-url,答案也可在此处找到:http://lists.jboss.org/pipermail/keycloak-user/2017-July/011109.html