2

WSO2 ESB で Identity Server UserProfileMgtService adminService を公開しました。問題は、このtryIt機能を使用してサービスをテストすると、SSL 例外が発生することです。これは、SOAP UI を介して ESB でサービスを呼び出したときにも発生します。

これは例外です:

    [2012-09-14 16:32:21,003] ERROR - ClientHandler I/O error : Host name verification failed for host : localhost For : 127.0.0.1:9447 For Request : Axis2Request [Message ID : urn:uuid:d3797d1e-f21d-4b6a-aec9-075e95e982e6] [Status Completed : false] [Status SendingCompleted : true]
javax.net.ssl.SSLException: Host name verification failed for host : localhost
        at org.apache.synapse.transport.nhttp.HttpCoreNIOSSLSender$1.verify(HttpCoreNIOSSLSender.java:310)
        at org.apache.http.impl.nio.reactor.SSLIOSessionHandlerAdaptor.verify(SSLIOSessionHandlerAdaptor.java:52)
        at org.apache.http.impl.nio.reactor.SSLIOSession.doHandshake(SSLIOSession.java:186)
        at org.apache.http.impl.nio.reactor.SSLIOSession.outboundTransport(SSLIOSession.java:292)
        at org.apache.http.impl.nio.SSLClientIOEventDispatch.outputReady(SSLClientIOEventDispatch.java:249)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:179)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:344)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:318)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542)
        at java.lang.Thread.run(Thread.java:662)
[2012-09-14 16:32:21,005]  WARN - EndpointContext Endpoint : endpoint_b058e35b0fa1f0f58569defe4fb9d4838eadea9b6abd4d36 will be marked SUSPENDED as it failed
[2012-09-14 16:32:21,006]  WARN - EndpointContext Suspending endpoint : endpoint_b058e35b0fa1f0f58569defe4fb9d4838eadea9b6abd4d36 - last suspend duration was : 30000ms and current suspend duration is : 30000ms - Next retry after : Fri Sep 14 16:32:51 EEST 2012

私は自己署名証明書を使用していますが、それに応じて wso2carbon.jks と client-truststore.jks を変更して、CN localhost を持つ証明書と、異なる CN を持つ自己署名証明書を持つようにしました。IS エンドポイントに localhost を使用しています。この例外の原因は何ですか? ESB で IS 管理サービスをマップする簡単な方法はありますか。

明確化
すべてのサーバーには、CN: ip-xx-xx-xxx-xx.xx.something.com の自己署名証明書があります。

Identity サーバーは localhost:9447/ で実行されており、ESB を介して実行したいサービスは localhost:9447/services/UserProfileMgtService?wsdl です。

ESB は localhost:9447/ にあります

axis2.xml で定義されている HTTPS トランスポート送信者構成で set パラメータを AllowAll に設定し、HideAdminServiceWSDLs も false に設定しました。

ブラウザから localhost:9447/services/UserProfileMgtService?wsdl にアクセスできますが、ESB で publishWsdl オプションを指定すると、サービスに接続できないと表示されます。カスタムプロキシとして定義すると、上記の例外がスローされます。

SOAP UI では、ESB がエンドポイント wsdl に接続できないため、mediate() メソッドしかない ESB でプロキシ サービスの WSDL を指定します。

4

1 に答える 1

3

このようにプロキシを定義して実行することができます。

管理サービスの WSDL にアクセスするには、carbon.xml の「HideAdminServiceWSDLs」パラメーターに「true」を設定する必要があります。次に、soapui プロジェクトを作成するだけで、正確な SOAP 要求形式を見つけることができます。

于 2012-09-14T18:47:21.677 に答える