当前位置: 首页 > 知识库问答 >
问题:

Keyclok桌面应用重定向表示我们很抱歉

陈季
2023-03-14

我按照这个Keycloak指南来保护一个Java的桌面应用程序。我已经按照规定设置了客户端:

在我的应用程序中,当我调用< code>loginDesktop()时,我让浏览器html" target="_blank">登录,并且我可以正确地登录。但是在登录之后,重定向页面显示“我们很抱歉。找不到页面”:

其他信息:Keycloak服务器托管在Google Cloud Run上,并使用Google CloudSQL Postgres实例进行持久性。Keycloak的docker映像使用Keycloak版本16.1.1。我使用Google CloudSQL代理连接到Postgres。持久性工作正常——我可以在整个运行过程中登录。

任何帮助,不胜感激。

共有2个答案

葛磊
2023-03-14

如果您使用的是最新指南,它适用于keycloak 17。

版本17的keycloak服务器的默认url发生了变化(使用Quarkus发行版,实际上,这是keycloak17的默认值):https://www.keycloak.org/migration/migrating-to-quarkus

对您来说,这意味着您的 keycloak 服务器部署在 /auth 路径上,因此,在您的配置中:

{
  "realm": "desktop-app-auth",
  "auth-server-url": "http://localhost:8081/auth",
  "ssl-required": "external",
  "resource": "desktop-app",
  "public-client": true,
  "use-resource-role-mappings": true,
  "enable-pkce": true
}

auth-server-url 应该有 /auth

孙恩
2023-03-14

这是Keycloak中公认的错误,从v16版本开始,在v17,v18和v19版本中尚未修复:

  • 使用钥匙斗篷时获取页面时出错已安装的适配器 ·问题 #9401 ·钥匙斗篷/钥匙斗篷 ·GitHub

在撰写本文时,提议的PR:

  • (恢复已删除/委派的endpoint需求由 kc 安装 (#9401) 由 bekwam ·拉取请求 #12796 ·钥匙斗篷/钥匙斗篷 ·嘟嘟)

修复这个问题还没有被批准,因为他们希望它以不同的方式实现,作为对Keycloak安装Java适配器的修复。(有关于Java适配器被“弃用”的评论,但我不知道这是否准确,因为据说如果提议的修复获得批准,他们将在即将发布的19.02版本中发布修复)

另一个建议的解决方案似乎是编译自定义版本的Keycloak Server(或至少自定义KeycloakInstatedJava适配器)。该解决方法的说明(我没有尝试过)在这篇堆栈溢出文章中

 类似资料:
  • 我假设我一路上错误地配置了什么,但我不知道是什么。 我按照以下说明在反向代理后面的KeyCloak6中设置SSL: https://www.keycloak.org/docs/latest/server_installation/index.html#设置-up-https-ssl

  • 问题内容: 我有一个非常大的程序,当前正在使用SWT。该程序可以在Windows,Mac和Linux上运行,它是一个包含许多元素的大型桌面应用程序。现在SWT有点老了,我想切换到Swing或JavaFX。我想听听您对三件事的想法。 我主要关心的是桌面GUI应用程序会更好吗?(我在网上看过,很多人认为JavaFX与Swing一样好,但是除了简单的见解大战之外,我没有看到很多有效的论点)。它必须在Wi

  • GUI 应用的字母列表。 Camelot Camelot 受 Django 管理界面的启发,在 Python 、 SQLAlchemy 和 Qt 的基础上提供了各种组件来构建应用。 可用的参考资源主要是其网站 : http://www.python-camelot.com 和邮件列表 https://groups.google.com/forum/ Cocoa NoteCocoa 框架仅用于 OS

  • CloudwareHub 云件平台,运行在云端,使用浏览器作为输入输出终端,所有软件无需在本地安装,只需几秒钟,即可开启Cloudware之旅。CloudwareHub 的后台由 DaoCloud 驱动。

  • 桌面应用 Clojure 可以创建基于Swing的GUI程序。下面是一个简单的例子, 用户可以输入他们的名字,然后点击“Greet:按钮,然后它会弹出一个对话框显示一个欢迎信息。可以关注一下这里我们使用了 proxy 宏来创建一个集成某个指定类 ( JFrame )并且实现了一些java接口 (这里只有 ActionListener 一个接口)的对象。. (ns com.ociweb.swing

  • 巧妙地使用I/O重定向可以解析和粘合命令输出的各个片断 (参考 例子 11-7). 这样就可以产生报告性的文件和日志文件. 例子 16-12. 事件记录 1 #!/bin/bash 2 # logevents.sh, Stephane Chazelas编写. 3 4 # 把事件记录在一个文件. 5 # 必须以root身份运行 (这样才有权限存取 /var/log).

  • “使用桌面应用程序并登录时,Facebook会将人们重定向到上述redirect_uri,并在URI片段中放置访问令牌以及其他一些元数据(例如令牌过期时间): https://www.facebook.com/connect/login_success.html#access\u token=access\u token。。。您的应用程序需要检测此重定向,然后使用您使用的操作系统和开发框架提供的机

  • 在学习这本书的过程中,你已经掌握了很多关于 Git 的命令。虽然这些是在学习过程中不可缺少的,但是版本控制的核心并不是让你学习所有的命令和参数。 当你掌握一些基本的概念,再加上一个带有用户图形界面的应用程序的帮助,就可以让你的日常工作变得更加简单。一个最大的好处就是它会为你提供了一个可视化的用户操作界面。 在桌面应用程序中,很多任务使用起来会更加容易和更方便。并且你也不需要记住那几十个繁琐的 Gi