1

Keycloak を使用したアプリのデプロイに問題があります。

エラーのデプロイメント: デプロイメント「vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear」は、 \ 以下の理由: java.lang.ClassNotFoundException: javax.faces.component.UIComponent from BaseClassLoader@6929c1c6{vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server /default/deploy/keycloak-demo-ear.ear}

またはこれ:

デプロイメントのエラー: デプロイメント「vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo.ear」は、次の理由によりエラーになっています(s): org.jboss.deployers.spi.DeploymentException: URL ファイル:/D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear /keycloak-demo-web.war/ デプロイに失敗しました

以下のコードを追加するとエラーが表示されますweb.xml

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

次のような管理コンソールから作成keycloak.jsonしました。WEB-INF

{
  "realm": "demo",
  "realm-public-key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",
  "auth-server-url": "http://localhost:8080/auth",
  "ssl-required": "external",
  "resource": "panel",
  "credentials": {
    "secret": "6c3fa646-f033-4864-8b87-604887ce8eec"
  }
}

Keycloakredmeファイルからstandalone/configuration/standalone.xmlへの構成に追加しました:

WildFly および JBoss EAP 6.x の場合

<extensions>
    <extension module="org.keycloak.keycloak-subsystem"/>
    ...
</extensions>

<profile>
    <subsystem xmlns="urn:jboss:domain:keycloak:1.0">
        <auth-server name="main-auth-server">
            <enabled>true</enabled>
            <web-context>auth</web-context>
        </auth-server>
    </subsystem>
    ...
</profile>

このキークロークを使用しています (keycloak-appliance-dist-all-1.1.0.Final)http://sourceforge.net/projects/keycloak/files/1.1.0.Final/keycloak-appliance-dist-all-1.1.0.Final.zip/download

パッケージから例のキークローク 1.1.0 を正常にデプロイし、アプリでキークロークを使用したいと考えています。私は何を間違っていますか?

編集:

問題を引き起こす要素を見つけたと思います:

<parent>
    <artifactId>keycloak-parent</artifactId>
    <groupId>org.keycloak</groupId>
    <version>1.1.0.Final</version>
    <relativePath>../../../pom.xml</relativePath>
</parent>

parentこれをサンプルプロジェクトから削除すると、動作しなくなります

私のアプリの構造は

mainapp
... pom.xml
... module1 ... pom.xml
... module2 ... pom.xml
... module3 ... pom.xml

すべてのモジュールparentmainapp

に親を追加するkeycloakと、次のような他のモジュールにmainapp pom.xmlエラーが発生します。parentmainapppom.xml

プラグインの実行はライフサイクル構成でカバーされていません:

私も追加しようとしdependencyましkeycloak-parentたが、まだIDが機能しません

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

2

Keycloak は、サーバー (Keycloak サーバー) と、アプリケーションを保護し、認証を処理するアダプターで構成されます。独自のアプリケーションを Keycloak サーバーと同じサーバーにデプロイする場合は、前述のように Keycloak アダプターをサーバーに追加する必要があります ( Keycloak アダプターを参照)。Keycloakの最新バージョンは事前構成されたWildfly 9として出荷されるため、アプリケーションに適している場合があります。他のコンテナーまたは純粋な HTML クライアント用のアダプターもあります。

あなたの質問から、Keycloakの例を独自のアプリケーションに変更しようとしていると思います。Keycloak の例では、共有の親 POM を使用しているため、全体像を把握するために、それを単一の POM に分解する必要がある場合があります。または、専門知識に応じて、JAAS セキュリティを備えた基本的な JEE アプリケーションから始めて、それを (JBoss/Wildfly アダプターがインストールされた) Keycloak サーバーにデプロイすることもできます。たとえば、Oracle の JEE 6 チュートリアルを参照してください。

于 2015-09-25T12:34:31.743 に答える
0

アプリをキークロークで動作させるには、サーバーにアダプターをインストールする必要があります。詳細は次のとおりです: https://docs.jboss.org/keycloak/docs/1.1.0.Final/userguide/html/ch08.html

keycloak サブシステムまたは keycloak.json ファイルを WEB-INF/ にデプロイできます。どちらの場合も、アダプターをインストールする必要があります。

于 2015-08-19T01:01:40.357 に答える