如何解决“所需的机制'BASIC'在HttpAuthenticationFactory的机制[KEYCLOAK]中不可用”

时间:2018-07-05 23:18:38

标签: java wildfly keycloak

当我尝试部署keycloak-quickstart app-profile-jee-vanilla项目时,我遇到了一条错误消息。某些网络搜索没有提供解决方案,所以我想在这里问。

这是我遵循的步骤。涉及三个bash外壳。


KEYCLOAK SHELL

curl -O -L https://downloads.jboss.org/keycloak/4.1.0.Final/keycloak-4.1.0.Final.tar.gz
tar xvfz keycloak-4.1.0.Final.tar.gz
./keycloak-4.1.0.Final/bin/standalone.sh -Djboss.socket.binding.port-offset=100

野生壳

curl -O -L http://download.jboss.org/wildfly/11.0.0.Final/wildfly-11.0.0.Final.tar.gz
curl -O -L https://downloads.jboss.org/keycloak/4.1.0.Final/adapters/keycloak-oidc/keycloak-wildfly-adapter-dist-4.1.0.Final.tar.gz
tar xvfz wildfly-11.0.0.Final.tar.gz
cd wildfly-11.0.0.Final
tar xvfz ../keycloak-wildfly-adapter-dist-4.1.0.Final.tar.gz
cd bin
./jboss-cli.sh --file=adapter-elytron-install-offline.cli
cd ../..
./wildfly-11.0.0.Final/bin/standlone.sh

快速启动外壳

git clone https://github.com/keycloak/keycloak-quickstarts
cd keycloak-quickstarts/app-profile-jee-vanilla
mvn clean wildfly:deploy

经过几分钟的编译,我看到了“所需的机制'BASIC'在HttpAuthenticationFactory的机制[KEYCLOAK]中不可用”消息。

有人可以指出我要解决此问题的方向吗?

5 个答案:

答案 0 :(得分:3)

正如我现在看到的,问题在于elytron适配器已安装,并且不应该安装。我删除了Wildfly目录。然后解压缩tgz文件。在没有进行任何其他配置的情况下,我启动了Wildfly服务器。服务器启动后,wildfly:deploy maven命令开始工作。

答案 1 :(得分:1)

根据下面的链接,这与Wildfly中默认的默认身份验证设置有关,默认情况下缺少凭据(ldap-realm配置不足) https://issues.jboss.org/browse/JBEAP-9943

可以通过将身份验证重定向到特定的Wildfly部署(例如“ vanilla.war”)的Keycloak来解决,如下所述: https://github.com/keycloak/keycloak-quickstarts/blob/latest/app-profile-jee-vanilla/README.md#configure-client-adapter-subsystem

,然后按问题中的说明进行部署(mvn clean wildfly:deploy)

答案 2 :(得分:0)

您只需要配置以下文件:standalone / configuration / standalone.xml

检查以下链接: https://www.keycloak.org/docs/latest/getting_started/index.html

步骤4.5

运行前:

sudo mvn clean wildfly:deploy

答案 3 :(得分:0)

发现Keycloak的“入门指南”的顺序需要更改。您必须执行随后更改standalone.xml文件的步骤。

在执行以下步骤之前:启动WildFly服务器并完成以下步骤:

> git clone https://github.com/keycloak/keycloak-quickstarts
> cd keycloak-quickstarts/app-profile-jee-vanilla
> mvn clean wildfly:deploy

,然后使用以下命令更改“ standalone.xml”文件:

> cd bin
> jboss-cli.bat --file=adapter-elytron-install-offline.cli

答案 4 :(得分:0)

我遇到了同样的问题。我找到了解决方法。 在运行mvn clean wildfly:deploy之前,我在keycloak子系统中设置安全部署,如下所示:

<subsystem xmlns="urn:jboss:domain:keycloak:1.1">
  <secure-deployment name="vanilla.war">
    <realm>demo</realm>
    <auth-server-url>http://localhost:8180/auth</auth-server-url>
    <public-client>true</public-client>
    <ssl-required>EXTERNAL</ssl-required>
    <resource>vanilla</resource>
  </secure-deployment>
</subsystem>