17

我需要在 Errai 应用程序中使用 keycloak 的帮助。我收到有关“KEYCLOAK”的“未知身份验证方法”的错误?我有 keycloak-appliance 运行(虽然在不同的端口上),并且 Errai 应用程序在 WEB-INF 内的 web.xml 文件中有一个带有 KEYCLOAK 当我使用 mvn gwt:run 运行 Errai 应用程序时,我得到:RuntimeException 导致通过“未知的身份验证机制KEYCLOAK”。我不知道如何解决这个问题。

4

3 回答 3

11

只是想为@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

当此脚本完成时,您的配置文件将添加新条目以容纳KEYCLOAKweb.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,您应该已经准备就绪。

于 2015-12-21T16:53:32.947 回答
6

您需要安装和配置 Wildfly 适配器,以便您的 Errai 应用程序能够识别“KEYCLOAK”身份验证方法。请参阅Keycloak 文档的第 7.2 节。

于 2015-01-24T16:28:13.080 回答
0

要添加到@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 脚本可能会失败,因此您可能需要手动添加这些条目。

于 2020-01-03T14:27:27.167 回答