WildFly にデプロイされた JAX-RS アプリケーションがあります。アプリケーションのエンドポイントは、Keycloak によって保護されますAccess Type: bearer-only
。これは、WildFly バージョン 24 までは問題なく動作します。
WildFly 25 以降、Keycloak アダプターは非推奨になり、新しい Elytron サブシステムに移行する必要があります。この WildFly の問題https://issues.redhat.com/browse/WFLY-15485によると、OIDC アダプターはまだ動作する準備ができていませんbearer-only
。ただし、Keycloak Wildfly アダプターを使用すればまだ可能であると述べられています。
また、最新の Keycloak ドキュメントとGoogle グループのこのスレッドにも、これが記載されています。
そこで、この場所からアダプターをインストールし、インストール スクリプトを実行しました。
./bin/jboss-cli.sh --file=bin/adapter-elytron-install-offline.cli -Dserver.config=standalone-full.xml
アプリケーションをデプロイすると、次のエラー メッセージが表示されます。
java.lang.IllegalStateException: The required mechanism 'KEYCLOAK' is not available in mechanisms [BASIC, CLIENT_CERT, DIGEST, FORM] from the HttpAuthenticationFactory
設定
- WildFly 26 (ジャカルタ EE 8)
- キークローク 16.1.1
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- Security configuration -->
<security-constraint>
<web-resource-collection>
<web-resource-name>admin-api</web-resource-name>
<url-pattern>/administration/*</url-pattern>
<url-pattern>/operations/*</url-pattern>
<url-pattern>/applications/*</url-pattern>
<url-pattern>/entities/*</url-pattern>
</web-resource-collection>
</security-constraint>
<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>this is ignored currently</realm-name>
</login-config>
<security-role>
<role-name>*</role-name>
</security-role>
</web-app>