私は現在、さまざまな ESB 製品を評価しています (実際、今はミュールに焦点を当てています)。ユース ケースは、単純な HTTP サービス、OpenGIS Web マッピング サービス WMS をプロキシすることです。
以下は、自由に公開された WMS サービスの例です。
- 「GetCapablities」リクエストのサービスに関する XML メタデータで応答します (http://www.wms.nrw.de/wms/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:31466&FORMAT=image/png&BBOX =2538900,5656400,2619500,5777000&幅=200&高さ=200&スタイル=&)
どちらもデータをバイト配列として返しますが、これは私が扱っている問題である可能性があります。
Mule ESB を介してプロキシできるようになったら、次のようにセキュリティ機能を追加したいと考えています。
- HTTP 基本認証とダイジェスト認証
- TLS クライアント証明書による認証
- XACML ポリシー実施ポイントの実装
- 監査サービスに関する使用統計を提供し、それにいくつかの QoS とスロットリングを実装します。
しかし、基本的にプロキシ自体は私が望むようには機能していません。これが私がこれまでに得たものです。最初に、inbound-address にセキュリティ プロバイダーを追加するフローでプロキシしようとしました。しかし、リクエストは送信アドレスに到達していないようで、応答は空です。
<?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 サービスからの応答だと思います。バイト配列から文字列または html 応答に変換するために、さまざまな応答トランスフォーマーを試しましたが、うまくいきませんでした。
ブリッジ パターンも試してみましたが、期待どおりに GET 操作でパラメーターを提供していませんでしたが、基になる WMS サービスによって受け入れられない POST によって提供されていました。
私のユースケースはかなり単純だと思いますが、4週間前から実装しようとしています。これらのベンダーが提供するすべてのサンプル チュートリアルを実行しましたが、どのような種類の認証でも単純な HTTP パラメータ サービスをセットアップできませんでした。
これらの製品を使用した経験のある人はいますか? または、これらの製品のいずれかで認証を使用して HTTP プロキシを設定する方法について、いくつかの具体的な質問に答えていただければ幸いです。
どうもありがとう!