# Axis Client der auf SSL-Webservice zugreift? muß ganz einfach sein?



## maxpade (24. April 2007)

Hallo allerseits,

ich habe mal ein paar Fragen:
1.
auf einem Webservice ohne SSL kann ich ohne Probleme zugreifen. Doch wenn ich den Webservice als SSL-Verbindung einrichte, dann muß ich den Client um ein paar Zeilen erweitern.... 

was muß ich denn hier erweitern
2. ich benutze für die Verbindung zum webservice eine Signatur. Soll oder muß ich dafür den selben Schlüssel (RSA) benutzen?

*client*

```
import ha.*;

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;

import org.apache.axis.EngineConfiguration;
import org.apache.axis.configuration.FileProvider;

public class TestSignaturClient
{
 public static void main(String[] args) throws Exception
 {
  EngineConfiguration config = new FileProvider("c:\\java\\tomcat\\webapps\\axis\\WEB-INF\\client-config.wsdd");
   TestSignaturServiceLocator loc = new TestSignaturServiceLocator(config);
   TestSignatur_PortType pt = loc.getTestSignatur();
   pt.getGreeting("hallo");
 }
}
```


Der Client ist von der WSDL-Datei abgeleitet und funktioniert. nur muß ich wohl für die ssl-Verbindung etwas hinzufügen?
*
die client-config.wsdd*

```
<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="Signature Timestamp"/>
		<parameter name="user" value="client"/>
		<parameter name="passwordCallbackClass" value="PWCallbackClient"/>
		<parameter name="signaturePropFile" value="client_crypto.properties" />
		<parameter name="mustUnderstand" value="0" />
    </handler> 
	</requestFlow>
	<responseFlow>
		<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
		<parameter name="action" value="Signature Timestamp"/>
		<parameter name="signaturePropFile" value="client_crypto.properties" />
		<parameter name="mustUnderstand" value="0" />
		</handler>
	</responseFlow>
</globalConfiguration>
</deployment>
```

*der server*

```
public class TestService {
  public String getGreeting(String name)
  {
    return "Hello "+name +"!";
  }
}
```

PS. in der server.xml habe ich den Port 8443 eingerichtet und dort das serverZertifikat eingetragen:


----------

