我在使用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并在运行时加载它会有什么操作上的不同呢?
答案 0 :(得分:1)
使用url
代替auth-server-url
,答案也可在此处找到:http://lists.jboss.org/pipermail/keycloak-user/2017-July/011109.html