【发布时间】:2021-02-01 18:35:06
【问题描述】:
我正在学习 jBPM(KIE 服务器和业务中心)和 Keycloak。孤立地,我成功地运行了所有这些软件。但是,当我尝试在它们之间进行集成时,网站上的用户身份验证工作(Keycloak 登录页面访问 Business Central 站点),但是 似乎 REST 服务的身份验证来自 KIE 服务器和业务中心的调用,停止工作(未经授权),并且 KIE 服务器无法与其控制器(业务中心)同步。
以下是有关该主题的更多详细信息。
我一直在寻找解决问题的方法,但没有成功。
虽然我已经咨询过这个优秀的网站,但这是我的第一个问题,对于建议将哪个文件附加到该问题上,我没有太多参考。如果您看到具体的文件,请签字,我会附上。
感谢您的帮助。
关于环境和遇到的问题的说明(有用信息):
-
只有 1 个 Wildfly 20.0.1 环境(服务器)在 Windows 10 上托管 KIE Server 7.43.1.Final、Business Central 7.43.1.Final 和 Keycloak 11.0.2,并安装了 Keycloak 适配器。
-
在 Keycloak 中,Realm 被创建为 VHLLEmpresaRealm 和 2 个客户端(应用程序):
- VHLLEmpresaKIEServer:具有公共访问权限。
- VHLLEmpresaBusinessCentral:具有机密访问权限。
-
在 Keycloak 中,用户 kieserver 的密码为 kieserver1!被创建并分配给各种角色(包括 Realm 和 Clients),其中包括:admin、rest-all、kie-server、kiemgmt 和 user。
-
在与 Keycloak (Keycloak 登录页面)集成的 Business Central 网站上使用 kieserver 用户和您的密码进行身份验证。 Google 身份验证(社交登录)正常工作。
-
Business Central 配置为显示和管理在 Keycloak 中注册的用户。
-
观察到的问题:
- 启动 Wildfly 服务器时,KIE 服务器无法与 Controller Business Central 同步(请参阅启动日志 - Doc 06)。下面的尝试在启动时重复了几次,但均未成功,随后出现 NullPointerException,并复制了以下行:
17:13:30,057 INFO [org.kie.server.controller.websocket.client.WebSocketKieServerControllerImpl] (KieServer-ControllerConnect) Kie Server 指向非 Web Socket 控制器 'http://localhost:8080/business-central/ rest/controller',使用默认的 REST 机制 17:13:30,214 错误 [org.keycloak.services.error.KeycloakErrorHandler](默认任务 6)未捕获的服务器错误:java.lang.NullPointerException 在 org.keycloak.storage.StorageId.isLocalStorage(StorageId.java:77) 在 org.keycloak.credential.UserCredentialStoreManager.getStoreForUser(UserCredentialStoreManager.java:54) ... 17:13:30,214 WARN [org.kie.server.services.impl.controller.DefaultRestControllerImpl] (KieServer-ControllerConnect) 在 http://localhost:8080/business-central/rest/controller/server 与控制器同步时遇到异常/wildfly-kieserver error 发送 PUT 请求到 http://localhost:8080/business-central/rest/controller/server/wildfly-kieserver 响应代码 401 时出错
完整文件的链接: https://drive.google.com/file/d/1kr47ap9frsCQB8oyQE2dEm2gfl7__s0G/view?usp=sharing
- 在 Business Central 网站的“部署”页面(也显示服务器)上,KIE 服务器服务器未显示为可用(请参阅 Doc 07)。
完整文件的链接: https://drive.google.com/file/d/1lKiCZdOp7yRvHibfgJ8ZOE_dZIAnkE6U/view?usp=sharing
- 在访问 Business Central REST 服务的 CURL 命令中,即使传递了 kieserver 用户和密码,答案也是未授权的(参见 Doc 08)。
命令: curl -X GET http://kieserver:kieserver1!@localhost:8080/business-central/rest/repositories -v 响应:错误未授权
完整文件的链接:
https://drive.google.com/file/d/1V_CH_hiTkhLh-AtgRvP0YkZ3afwBc4tZ/view?usp=sharing
其他文件:
Wildfly 设置 - STANDALONE-FULL.XML https://drive.google.com/file/d/1f0xvRDPiId1RymZkMGIUaIMB_EuGpbud/view?usp=sharing
【问题讨论】:
标签: rest authentication keycloak jbpm kie