2009年11月17日火曜日

Rampart sample と TCPmon

Axis2 1.5.1で rampart 1.4 の sample を動かして、SOAP メッセージを TCPMon で観察するやり方のメモ。basic と policy があるけど、ここでは basic で説明。Windows 環境で、基本、コマンドプロンプトから Ant 叩くだけ。 (以下、rampart を展開したディレクトリを {rampart}とする。あと {rampart}\samples\basic\README.txt を読んでいること前提。) ■ 準備
  • コマンドプロンプトから、{rampart}/samples/basic に行く
  • 環境変数 AXIS2_HOME が 設定されていることを確認。
  • build.xml の client.port プロパティを 8080 から適当な値に書き換える(ここでは 8888 とした)。このポートがTCPMonの受け口になる。
    <property name="client.port" value="8888"/>
  • addressing.mar プロパティを addressing-1.4.mar から ~1.5.1 に書き換える
    <property name="addressing.mar" value="addressing-1.5.1.mar"/>
  • client.axis2.xml の以下の部分をコメントアウトする
    <!--    <transportSender name="tcp"
                         class="org.apache.axis2.transport.tcp.TCPTransportSender"/>-->
■ 実行 まずは、とりあえず basic 下の sample01 を動かしてみる。
  • TCPMon を起動。Admin タブで以下の設定を追加
    • Listen Port 8888
    • Target Hostname 127.0.0.1
    • Target Port 8080
  • コマンドプロンプトで、samples\basic下からサービスを立ち上げる。自前の HTTPサーバを立てている模様。
    ~~\samples\basic>ant server.01    
  • もう一個のコマンドプロンプトでクライアントを実行する。
    ~~\samples\basic>ant client.01    
  • 以下の出力を確認(ほんとは1行)
    [java] <ns:echoResponse xmlns:ns=
        "http://sample01.samples.rampart.apache.org">
        <ns:return>Hello world</ns:return></ns:echoResponse>
  • ログを見たかったら、{rampart}\samples\basic\build\temp_client に log4j.properties を適当に書けばダラダラ出力される。
  • TCPMon はこんな感じになる。sample01 は WS-Security を使っていないので、Adressing が付いただけのあっさりしたヘッダ。
  • ちなみにsample02をやってみると、SOAPヘッダにこんなのが追加されたのわかる。
     <wsse:Security 
           xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
           soapenv:mustUnderstand="1">
       <wsu:Timestamp 
           xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
           wsu:Id="Timestamp-7866553">
         <wsu:Created>2009-11-16T10:47:08.375Z</wsu:Created>
         <wsu:Expires>2009-11-16T10:52:08.375Z</wsu:Expires>
       </wsu:Timestamp>
       <wsse:UsernameToken 
           xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
           wsu:Id="UsernameToken-31658378">
         <wsse:Username>bob</wsse:Username>
         <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"
           >KnUNxZhw8uDNeBpJXOwb6uZzdP8=</wsse:Password>
         <wsse:Nonce>O0u/xram0QS4x7P6sgFijQ==</wsse:Nonce>
         <wsu:Created>2009-11-16T10:47:08.359Z</wsu:Created>
       </wsse:UsernameToken>
     </wsse:Security>
ちょっと面白い。

0 件のコメント:

コメントを投稿