6.7. camel-soap-rest-bridge
簡単な Camel ルートは REST 呼び出しをレガシー SOAP サービスにブリッジできます。クイックスタートサンプルは、camel-soap-rest-bridge
コンポーネントと Camel の REST DSL を使用して、バックエンドの SOAP API サービスを公開する方法を示すために提供されます。
このクイックスタートでは、RH SSO がサポートする REST エンドポイントと SOAP エンドポイントの両方に対してセキュリティーが関与します。フロントエンド REST API は OAuth および OpenID Connect によって保護され、クライアントは リソースオーナーパスワードクレデンシャル OAuth2 モードを使用して、RH SSO から JWT (JSON Web Token) アクセストークンを取得します。クライアントはこのトークンを使用して REST エンドポイントにアクセスします。
ブリッジ Camel ルートでは、クライアントアイデンティティーは SecurityContext から伝播され、camel-cxf producer
がバックエンド WS-SECURITY protected SOAP サービスと通信する際に、最初にこのクライアントアイデンティティーを使用して CXF STS サービス (Identity Provider として RH SSO を基盤とする) によって発行された SAML2 トークンを取得します 。SAML2 トークンは署名されて WS-SECURITY ヘッダーに追加され、バックエンド WS-SECURITY 保護 SOAP サービスがこの SAML2 トークンを検証します。
SOAP 呼び出しには、XSD スキーマ検証も含まれます。トークンの検証に成功すると、バックエンド SOAP サービスはリクエストを開始した REST クライアントにレスポンスを返します。
前提条件
- JBoss EAP 7.3 以降のバージョンがインストールされている。
- Apache Maven 3.3.x 以降のバージョンがインストールされている。
- RH SSO 7.4 がインストール、設定されている-https://access.redhat.com/documentation/ja-jp/red_hat_single_sign-on/7.4/html/getting_started_guide/installing-standalone_#installing-server-product のインストール手順に従います。
- RH SSO EAP アダプターがインストールされている-https://access.redhat.com/documentation/ja-jp/red_hat_single_sign-on/7.4/html/getting_started_guide/securing-sample-app_#installing-client-adapter のインストール手順に従います。
クイックスタートのセットアップ
- JBOSS EAP をスタンドアロンモードで起動します。
-
EAP_HOME/quickstarts/camel/camel-soap-rest-bridge
に移動します。 -
mvn clean install -Pdeploy
を入力して、クイックスタートをビルドおよびデプロイします。 RH SSO を設定します。
- admin/admin をユーザー名/パスワードとして、http://localhost:8180/auth から RH SSO 管理コンソールにログインします。
- Add realmをクリックします。
- Select fileをクリックします。
- この例のために事前定義された必要な realm/client/user/role をインポートするこのサンプルディレクトリーの ./src/main/resources/keycloak-config/realm-export-new.json を選択します。
- Createをクリックします。
Fuse on EAP のクイックスタートの例
クイックスタートの実行とテストケースの結果に関する追加情報が含まれるこのクイックスタートサンプルは、Fuse on EAP インストールの EAP_HOME/quickstarts/camel/camel-soap-rest-bridge
ディレクトリーで入手できます。
アンデプロイ
例をアンデプロイするには、EAP_HOME/quickstarts/camel/camel-soap-rest-bridge
ディレクトリーに移動して mvn clean -Pdeploy
を実行するようにします。