Keycloak未知的身份验证机制

时间:2014-12-02 15:53:40

标签: wildfly-8 errai keycloak

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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

只想在@ cfsnyder的答案中添加更多细节。为了让您的应用程序服务器能够识别web.xml中的定义,如下所示:

<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>internal</realm-name>
</login-config>

你需要告诉jboss(在这个例子中)如何解释那个特定的auth方法。在我的回答时,这是在section 8.2 of the Keycloak docs

首先,download the keycloak adapter(请记住, 与Keycloak Server相同)。接下来,在wildfly主目录中解压缩下载。在应用程序服务器运行的情况下,只需使用以下命令将Keycloak配置安装到相应的文件中:

jboss-cli.sh -c --file=adapter-install.cli

当此脚本完成时,您的配置文件将添加新条目以容纳web.xml中的KEYCLOAK条目。该脚本将添加类似于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,您应该全部设置。

答案 2 :(得分: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脚本可能由于各种原因而失败,因此您可能需要手动添加这些条目。