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