我需要帮助在Errai应用程序中使用keycloak。我收到关于“KEYCLOAK”的“未知身份验证方法”的错误?我有keycloak设备运行(虽然在不同的端口),并且Errai应用程序在WEB-INF内的web.xml文件中有一个KEYCLOAK 当我使用mvn gwt:run运行Errai应用程序时,我得到:由“未知的身份验证机制KEYCLOAK”导致的RuntimeException。我不知道如何解决这个问题。
答案 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脚本可能由于各种原因而失败,因此您可能需要手动添加这些条目。