问题标签 [keycloak]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html-email - Keycloak 的 FreeMarker 电子邮件模板
我正在使用 Keycloak 发送忘记密码的电子邮件,从我在他们的文档和 FreeMarker 文档中阅读的内容来看,似乎我应该能够很好地使用 HTML 标签。但是,当我在 password-rest.ftl 文件中使用它们时,它会呈现整个标签,如下所示:
而不仅仅是显示:一些文本
我发现这个(https://issues.jboss.org/browse/KEYCLOAK-681)说Keycloak只能发送纯文本电子邮件,我只是想看看是否有人确定,因为我发现了一些看起来像HTML 标签应该可用你如何阻止电子邮件在 FreeMarker 中显示为链接?
对此的任何建议或想法将不胜感激。
ajax - KeyCloak - Javascript 和 Spring 启动应用程序
我已经安装并配置了 keycloak 服务器。我的应用程序由部署在 apache HTTP 服务器上的单个 html 页面组成,该服务器与 keycloak 服务器位于同一台机器上。此 HTML 页面进行 REST json ajax 调用以获取数据。HTML 页面使用 JS 适配器进行保护,其余服务使用 Spring Boot 应用程序公开,并使用 Spring Boot 适配器进行保护。
Keycloak 有一个配置了客户端适配器的客户端。
现在,js 适配器完美运行文件。它重定向到登录页面,登录后,它重定向到所需的页面。Spring Boot 适配器也可以正常工作。当我们为 Web 服务执行 GET 时,它会重定向到登录页面,并且在输入凭据后,Web 服务会提供响应。
问题是当 HTML 页面使用 AJAX 调用此 Web 服务时,它会失败。
因此,当我在密钥斗篷服务器中输入凭据并重定向到 html 页面时,html 页面无法进行 ajax 调用。响应代码是 302,它被重定向到 keycloak auth 服务(在 ajax 调用期间)。
我的问题是:
* 如果我的 html 页面和 restful web 服务使用相同的 keycloak 客户端,我不需要登录一次吗?* 如果 (html 和 webservice ) 都被单独验证并且是工作文件,那么为什么当我只登录到 html 页面时它不工作?
* 有没有其他方法可以解决这个问题?
javascript - Angular JS页面加载触发无限页面加载循环
我有一个使用 ngRoute 的 Angular js 应用程序。对应用程序的重定向来自父网站,并且父网站会自动将一些查询参数附加到 URL 中。这会触发 Angular js 应用程序的无限循环。
父网站准备的 url 就像
Angular JS 采用这个 URL 并像下面这样修改它,至少这是我所看到的。
然后页面继续重定向到相同的链接。我认为原因是因为 ngRoute,因为当我创建一个没有 ngRoute 的示例应用程序时,它工作得很好。
这是我的 main.js
我的 ngRoute 如下
我认为问题出otherwise
在 ngRoute 中,它不断重新路由到同一位置。
要解决这个问题
- 我尝试在路由配置中添加 reloadOnSearch: false
- 引导完成后 $route.reload
- $location.path('/home') 改变url的路径
- document.location.href 改变url的路径,JS方式
但他们都没有解决问题。
如何停止此重新加载问题?我可以添加一个过滤器,当在 Angular 应用程序中时,它会从 url 中删除任何类型的查询参数?如果是的话,你能指导我怎么做吗?
谢谢
java - 由于以下原因导致的错误:java.lang.ClassNotFoundException Keycloak
我在使用 Keycloak 部署应用程序时遇到问题:
部署错误:部署“vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear”由于\ 以下原因: java.lang.ClassNotFoundException: javax.faces.component.UIComponent from BaseClassLoader@6929c1c6{vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server /default/deploy/keycloak-demo-ear.ear}
或者这个:
部署错误:部署“vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo.ear”由于以下原因而出错(s): org.jboss.deployers.spi.DeploymentException: URL 文件:/D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear /keycloak-demo-web.war/ 部署失败
添加以下代码时出现错误web.xml
我已经从管理控制台创建keycloak.json
,如:WEB-INF
我将Keycloak
配置从 redme 文件添加到standalone/configuration/standalone.xml:
对于 WildFly 和 JBoss EAP 6.x
我正在使用这个密钥斗篷(keycloak-appliance-dist-all-1.1.0.Final)http://sourceforge.net/projects/keycloak/files/1.1.0.Final/keycloak-appliance-dist-all-1.1.0.Final.zip/download
我从包中成功部署了示例 keycloak 1.1.0,并希望在我的应用程序中使用 keycloak。我究竟做错了什么?
编辑:
我想我找到了导致问题的元素:
当我parent
从示例项目中删除它时,它停止工作
我的应用程序结构是
mainapp
... pom.xml
... module1 ... pom.xml
... module2 ... pom.xml
... module3 ... pom.xml
每个模块都parent
必须mainapp
当我将父级添加keycloak
到其他模块时,我在其他模块中mainapp
pom.xml
出现错误,parent
例如:mainapp
pom.xml
生命周期配置未涵盖插件执行:
我也尝试添加dependency
,keycloak-parent
但 id 仍然不起作用
我该如何解决这个问题?
jboss7.x - 以管理员身份登录 Keycloak 时出现“需要 HTTPS”
我Keycloak (version 1.0.4.Final)
在JBOSS AS 7.1.1
服务器中使用。服务器在亚马逊 AWS 上。
我可以用 keycloak 启动 jboss 服务器。我可以在点击 URL 时看到 keycloak 默认屏幕 -ServerIP:8080/auth
但是当我点击Administration Console
链接进入登录屏幕时。我得到一个页面说 -HTTPS required
服务器在 AWS 上,更改为"ssl-required" : "none",
General Adapter Config 没有帮助。
如何解决这个问题?
编辑:我在 keycloak-1.2.0.Beta1 版本中没有遇到这个问题。
android - 使用 Pipe (Aerogear) 调用 api 时出现状态码 404 和服务连接错误
我正在为用户和 api 身份验证实施 Keycloak 并成功通过 Keyclaok 服务器进行身份验证,但在调用 API 时出错。
我正在使用 Aerogear 管道库和示例项目来调用服务器 API。 https://github.com/aerogear/aerogear-android-pipe
请提出解决此问题的可能方法。
angularjs - 处理 Token 的延迟响应
我试图从https://github.com/keycloak/keycloak/tree/master/examples/demo-template/angular-product-app创建一个改进的登录示例, 这似乎更适合初学者。
无论如何,我在提供程序和配置中添加了所有初始配置,因为我觉得这是一种更好的角度方法。然后我尝试调用 keycloak.init(),这是一个初始化变量的函数,根据您传递给它的参数,您可以查看它是否已经记录。问题是当它被记录时,令牌需要一段时间,我猜这是正常的。
所以我添加了一个 $rootScope.watch(loggedIn) ,所以当 init() 成功时 $rootScope.loggedIn 设置为 true,如果它发生变化。
我在 $rootScope.$watch 中添加了一个 $scope.$apply。由于现在的代码可以正常工作,但由于 $scope.$apply ,我遇到了 $diggest 问题,但它可以工作。我知道这真的很麻烦。
所以我正在寻找解决方案。我对角度真的很陌生。我只能考虑以下方法
1)一个可以在没有 $rootScope 的情况下工作的代码,我认为如果它在没有 $rootScope 的情况下工作会更好,但我不确定如何。也许使用承诺、$q 等。2) 使用 $timeout,我仍在阅读此内容。
我正在寻找一个更 angularjs 优雅的解决方案。
android - Android 中未显示 Keycloak Auth 屏幕
我正在使用 Keycloak 进行移动应用程序的用户管理。一切都在 AVD 上按预期工作。但是,在实际的 Android 设备上进行测试时,不会显示 Keycloak 身份验证屏幕。
有人对如何解决这个问题有任何建议吗?
angularjs - 具有keycloak auth的Angularjs在刷新后不断向url添加相同的参数
我在我的门户上使用 angularjs 和 keycloak 进行身份验证。问题可能是我在 keycloak 中配置的错误,或者是我应该做的 angular 缺少的东西。
当我第一次登录页面时,我得到类似的东西
重新加载后,我得到这样的东西
当我在开发提示时不断刷新页面时,代码和状态开始堆积,我最终拥有了。
这是我的代码 https://github.com/jdc18/angular-product-app-keycloak/blob/master/angular-product-app2/src/main/webapp/js/app.js 我已经更改了代码一点点,但基本上是一样的。我现在使用 ui-router 而不是 ng-route 但我有同样的问题。
我也不确定它是否可以,但是如果我点击我的任何链接,比如配置文件,我会得到类似 ng-route 或 ui-router 的东西
最后加上#/profile 或#mylink,我不确定这是否是有意的。
我是否应该尝试使用 $location 之类的东西来更改参数,或者使用 keycloak 更改某些东西。
angularjs - Keycloak:在 AngularJS 应用程序中更新用户密码
我正在构建一个受 Keycloak 保护的 AngularJS 应用程序。每个用户都应在其用户配置文件中更新其密码。
调用 Keycloak API 获取密码
获取 /auth/realms/{realm_name}/account/password
从 Keycloak 返回 HTML 内容。我想构建自己的表单来更新用户的密码。
在我发现的 Keycloak 文档中
POST /auth/realms/{realm_name}/account/password
这需要属性
打电话
POST /auth/realms/{realm_name}/account/password
没有“stateChecker”属性会导致错误。该属性是必需的。
所以这是我的问题:
- 如何
stateChecker
从登录用户的 keycloak 获取值(在 Keycloak 中它位于隐藏的输入字段中)? - 是否有另一种可能通过 REST API 调用更改用户密码?
提前致谢。
笔记:
来电:
POST /auth/realms/{realm_name}/account/password
具有硬编码的属性和值
正在工作中!