我需要在 Errai 应用程序中使用 keycloak 的帮助。我收到有关“KEYCLOAK”的“未知身份验证方法”的错误?我有 keycloak-appliance 运行(虽然在不同的端口上),并且 Errai 应用程序在 WEB-INF 内的 web.xml 文件中有一个带有 KEYCLOAK 当我使用 mvn gwt:run 运行 Errai 应用程序时,我得到:RuntimeException 导致通过“未知的身份验证机制KEYCLOAK”。我不知道如何解决这个问题。
3 回答
只是想为@cfsnyder 的答案添加更多细节。为了让您的应用程序服务器能够识别 web.xml 中的定义,如下所示:
<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>internal</realm-name>
</login-config>
您需要告诉 jboss(在这种情况下)如何解释该特定的身份验证方法。在我回答时,这是在Keycloak docs 的第 8.2 节中。
首先,下载 keycloak 适配器(记住,这与Keycloak Server 不同)。接下来,在 wildfly 主目录中解压缩下载文件。随着您的应用程序服务器运行,只需使用以下命令将 Keycloak 配置安装到适当的文件中:
jboss-cli.sh -c --file=adapter-install.cli
当此脚本完成时,您的配置文件将添加新条目以容纳KEYCLOAK
web.xml 中的条目。该脚本会将类似这样的内容添加到 domain.xml 或 Standalone.xml:
<security-domain name="keycloak">
<authentication>
<login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"/>
</authentication>
</security-domain>
一旦您拥有适配器提供的 Keycloak 模块文件 + 安全域配置以将该KEYCLOAK
方法链接到适当的LoginModule
,您应该已经准备就绪。
您需要安装和配置 Wildfly 适配器,以便您的 Errai 应用程序能够识别“KEYCLOAK”身份验证方法。请参阅Keycloak 文档的第 7.2 节。
要添加到@josh-cain 的答案,您可能还需要在 domain.xml 或 Standalone.xml 中添加以下内容:
<extensions></extensions>
,添加:
<extension module="org.keycloak.keycloak-adapter-subsystem"/>
<profile></profile>
,添加:
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"/>
由于各种原因,适配器安装 cli 脚本可能会失败,因此您可能需要手动添加这些条目。