Keycloak未知的身份验证机制

Odi*_*ute 15 errai wildfly-8 keycloak

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

小智 6

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

  • 虽然此链接可能会回答这个问题,但最好在此处包含答案的基本部分并提供参考链接.如果链接的页面发生更改,则仅链接的答案可能会无效. (3认同)

jos*_*ain 6

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

<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>internal</realm-name>
</login-config>
Run Code Online (Sandbox Code Playgroud)

您需要(在这种情况下)告诉jboss如何解释该特定的auth方法。在我回答时,这在Keycloak docs的8.2节中

首先,下载keycloak适配器(请记住,这是一样的Keycloak服务器)。接下来,将下载文件解压缩到wildfly主目录中。在运行应用程序服务器的情况下,只需使用以下命令将Keycloak配置安装到适当的文件中:

jboss-cli.sh -c --file=adapter-install.cli
Run Code Online (Sandbox Code Playgroud)

该脚本完成后,您的配置文件将添加新条目以适应KEYCLOAKweb.xml中的条目。该脚本将在domain.xml或standalone.xml中添加如下内容:

            <security-domain name="keycloak">
                <authentication>
                    <login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"/>
                </authentication>
            </security-domain>
Run Code Online (Sandbox Code Playgroud)

一旦有了适配器+安全域配置提供的Keycloak模块文件,就可以将KEYCLOAK方法链接到相应的LoginModule,那么您就已经准备就绪。