現在、さまざまなESB製品を評価しています(実際にはまだミュールに実装されています)。ユースケースは、OpenGIS WebマッピングサービスWMSである単純なHTTPサービスをプロキシすることです。ここで異なるESB製品で保護されたHTTPプロキシ
は自由に出版されWMSサービスの一例です:
- それは「GetCapablities」リクエスト(http://www.wms.nrw.de/wms/のサービスについてのXMLメタデータで応答しますuebersicht_nrw2?REQUEST =は、GetCapabilities & VERSION = 1.1.1 & SERVICE = WMS)
- それは "GetMapリクエスト" リクエスト(http://www.wms.nrw.de/wms/uebersicht_nrw2ためのマップを含む画像データで応答? REQUEST = GetMap & VERSION = 1.1.1 & SERVICE = WMS & LAYERS = Uebersicht & SRS = EPSG:31おそらくかもしれ466 & FORMAT =画像/ PNG & BBOX = 2538900,5656400,2619500,5777000 & WIDTH = 200 & HEIGHT = 200 & STYLES = &)
両方がバイト配列としてそのデータを返します。問題は私が対処している。
私はミュールESBによるプロキシ、それをすることができた後、私は次のようにセキュリティ機能を追加したい:
- HTTP BasicおよびDigest認証
- 認証XACMLポリシー実行ポイントを実装するTLSクライアント証明書
- 経由
- 監査サービスよりいくつかの使用統計情報を提供し、いくつかのQoSと調整を実装します。
しかし、基本的にプロキシ自体は私が望むように動作していません。ここに私がこれまでに得たものがあります。最初に、フローでプロキシを試行して、インバウンド・アドレスにセキュリティ・プロバイダを追加しようとしました。要求はアウトバウンド・アドレスに到達していないようで、応答は空です。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:pattern="http://www.mulesoft.org/schema/mule/pattern" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mule-ss="http://www.mulesoft.org/schema/mule/spring-security" xmlns:ss="http://www.springframework.org/schema/security" version="CE-3.2.1" xsi:schemaLocation="...cut..."
<mule-ss:security-manager>
<mule-ss:delegate-security-provider name="memory-provider" delegate-ref="authenticationManager"/>
</mule-ss:security-manager>
<spring:beans>
<ss:authentication-manager alias="authenticationManager">
<ss:authentication-provider>
<ss:user-service id="userService">
<ss:user name="ross" password="ross" authorities="ROLE_ADMIN"/>
<ss:user name="anon" password="anon" authorities="ROLE_ANON"/>
</ss:user-service>
</ss:authentication-provider>
</ss:authentication-manager>
</spring:beans>
<http:connector name="NoSessionConnector">
<service-overrides sessionHandler="org.mule.session.NullSessionHandler" />
</http:connector>
<flow name="wfsFlow1" doc:name="wfsFlow1" processingStrategy="synchronous">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="wms" responseTimeout="10000000" doc:name="Geoserver OWS">
<mule-ss:http-security-filter realm="mule-realm"/>
</http:inbound-endpoint>
<http:outbound-endpoint exchange-pattern="request-response" method="GET" address="http://www.wms.nrw.de/wms#[header:INBOUND:http.request]" encoding="UTF-8" disableTransportTransformer="true" responseTimeout="1000000" doc:name="Geoserver OWS"/>
</flow>
</mule>
私は問題がWMSサービスからのバイト配列としての応答だと思います。私は別のrepsonseトランスフォーマーをバイト配列から文字列またはhtml応答に変換しようとしましたが、うまくいきませんでした。
ブリッジパターンも試しましたが、期待通りにGET操作でパラメータを提供していませんでしたが、基盤となるWMSサービスでは受け付けられません。
私のユースケースはかなり単純だと思いますが、今は4週間から実装しようとしています。これらのベンダーが提供するすべてのサンプルチュートリアルを実行しましたが、あらゆる種類の認証で簡単なHTTPパラメータサービスを設定することはできませんでした。
これらの製品に関する経験をお持ちの方や、これらの製品の認証でHTTPプロキシを設定する方法に関するいくつかの具体的な質問にお答えしていますか?
多くの感謝!
ありがとうございました。私のプロジェクトにミュール領域を追加し、それを介して認証することができました。残念なことに、HTTPブリッジは認証後にそれ以上応答しません(認証ヘッダーがメッセージに追加されたときにこれがなぜ発生するのかわかりません)。 URLパラメータで構成されたHTTPメッセージを明示的にプロキシするための例がありますか? –
あなたの設定とテストリクエストを表示し、さらに調査してください。 –
こんにちはDave!私は元の質問を更新しました。 Spring Securityの設定は問題がありませんし、魅力的ですが、プロキシを試してみるという特別なWMSサービスの操作に問題があります。あなたが私の要求を達成するために、フロー(Flow)またはペタン(pettern)のいずれかを使用することに関する助言を私に与えることができれば、私は非常に感謝しています。 –