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


12 Eylül 2008

SSL'li Web Servisine Bağlanma

Merhaba,
Bir web servisi istemcisi (client) oluşturdunuz. Bağlanacağınız web servisi HTTPS üstünden hizmet veriyor. Servise bağlanmaya çalışan istemciniz sertifika hatası alıyor. Ne yapmalısınız ?
İlgili sertifikayı istemcinizin java runtime'ı içinde güvenilir yapmanız gerekir.
Yapmanız gerekenler adım adım aşağıda :
1. Herhangi bir tarayıcı ile web servisinin URL'ine gidin. 
2.  Anahtar işaretinin üstüne tıklayın. (Bu işaretin yeri tarayıcı tipine  değişebilir. Google Chrome ve IE için adres satırının sağında. Firefox  içinse tarayıcının sağ alt köşesinde). Gelen pencereden sertifika bilgilerine tıklayın.
3. Gelen pencerede Details sekmesine gidin. Burada Copy to File düğmesine tıklayın.
4. Gelen pencerede next'leyerek diskte belirlediniğiniz bir yere dosyayı kaydedin.
5. Komut satırını açın. Aşağıdaki gibi girin : Girilen bilgiler ile enter'a basınca sizden şifre isteyecektir. Eğer sertifika için bir şifre tanımı yoksa genelde varsayılan şifre changeit'tir. Şifreyi yazın ve enter'e tıklayın. 
C:\Program Files\Java\jdk1.5.0_11\jre\lib\security > keytool -import -keystore cacerts -file c:\temp\test.cer 
Enter keystore password:  changeit
6. Gelen pencerede sizden onay isteyecektir. Y yazın ve enter'a basın. İşlemin başarılı gerçekleştiğine dair bir mesaj ekranda çıkacaktır.
Hepsi bu kolay gelsin.