31 Aralık 2008

Axis Client ile WS Security uyarlama

Merhaba,


Bir web servise Axis üstünden bağlanacaksınız. Bağlanacağınız web servisi sizden WS Security implement edilmiş şekilde istek kabul edebiliyor olsun. Bu durumda istemcinizin göndereceği SOAP istek mesajının başlığında (header) WS Security imleri eklenmiş olmalı. Bunun için yapılması gereken aşağıda :


1.       Gerekli kütüphaneleri uygulamanızın classpath’ine eklemek.

2.       client-config.wsdd oluşturmak ve bu dosyayı uygulamanıza VM argümanı olarak eklemek.

Kütüphane olarak kullanılacak ekstra jar’lar :

a.        opensalm.jar

b.        wss4j.jar

c.        xmlsec.jar

client-config.wsdd aşağıdaki gibi :


<!-- Using the WSDoAllSender security handler in request flow -->

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

       <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender" />

       <globalConfiguration>

              <requestFlow>

                     <handler

                           type="java:org.apache.ws.axis.security.WSDoAllSender">

                           <parameter name="action" value="UsernameToken" />

                           <parameter name="passwordType" value="PasswordText" />

                           <parameter name="mustUnderstand" value="true" />

                     </handler>

              </requestFlow>

       </globalConfiguration>

</deployment>


Bu dosyayıuygulamanıza VM parametresi olarak eklemeniz gerekecek.

-Daxis.ClientConfigFile= <dosyanın olduğu dizin>/client-config.wsdd

Hepsi bu. Oluşan SOAP istek mesajının başlığında aşağıdaki gibi olacaktır.


<soapenv:Header>

       <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">

              <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-14884403">

                     <wsse:Username>user1</wsse:Username>

                     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">user1</wsse:Password>

              </wsse:UsernameToken>

       </wsse:Security>

</soapenv:Header>

 

Kolay gelsin