Hi, I also tried to subscribe via the links given on http://ws.apache.org/axis2/mail-lists.html and they point to obsolete lists, it seems - the resulting mailer daemon message is where I got redirected to this place.
Markus ************************************************************************** Soloplan GmbH Software für Logistik und Planung Markus Schaber (Dipl.-Informatiker) Entwicklung, Projektleitung Burgstraße 20 | 87435 Kempten | Deutschland Telefon: +49 831 57407-0 | Telefax: +49 831 57407-111 E-Mail: [email protected] | Internet: www.soloplan.de Geschäftsführer: Wolfgang Heidl, HRB 5304 Kempten > -----Ursprüngliche Nachricht----- > Von: Andreas Veithen [mailto:[email protected]] > Gesendet: Donnerstag, 9. September 2010 20:49 > An: [email protected] > Betreff: Re: Axis and WS-Security on a standalone client > > As part of the promotion of the Axis project to a top level project, > we have decided to create separate mailing lists for Axis 1 and Axis2. > For all Axis 1 related questions please subscribe and post to > [email protected]. Thanks! > > Andreas > > > On Thu, Sep 9, 2010 at 17:58, Markus Schaber <[email protected]> wrote: > > Hello, > > > > I'm struggling with creating a standalone soap client that employs > > WS-Security against a windows (WCF / .NET 3.5) server. > > > > When removing the WS-Security requirement from the server, everything > > works fine. But I just cannot get the java client to send the > > appropriate SOAP headers with username and password. > > > > Most tutorials / FAQs I googled talk about deployment descriptors in > > Tomcat, but I do not have that, I just have some small standalone java > > application. > > > > My current state of the art is: > > > > package test; > > > > import java.io.IOException; > > import java.net.MalformedURLException; > > import java.net.URL; > > > > import javax.security.auth.callback.Callback; > > import javax.security.auth.callback.CallbackHandler; > > import javax.security.auth.callback.UnsupportedCallbackException; > > import javax.xml.rpc.ServiceException; > > > > import org.apache.ws.security.WSConstants; > > import org.apache.ws.security.WSPasswordCallback; > > import org.apache.ws.security.handler.WSHandlerConstants; > > import org.apache.ws.security.message.token.UsernameToken; > > > > import de.soloplan.TestServices.GPSPosition; > > import de.soloplan.TestServices.TestServiceLocator; > > import de.soloplan.TestServices.TestServices; > > import de.soloplan.TestServices.TestServicesBindingStub; > > > > public class TestClass { > > > > /** > > * @param args > > * @throws ServiceException > > * @throws MalformedURLException > > */ > > public static void main(String[] args) throws Exception { > > > > System.getProperties().setProperty("javax.net.ssl.trustStore", > > "/home/schabi/.keystore"); > > > > System.getProperties().setProperty("javax.net.ssl.keyStore", > > "/home/schabi/.keystore"); > > > > System.getProperties().setProperty("javax.net.ssl.keyStorePassword", > > "foobar"); > > > > System.getProperties().setProperty("javax.net.ssl.keyStoreType", "JKS"); > > > > URL url = new > > URL("https://localhost:62615/TestService"); > > > > TestServiceLocator locator = new TestServiceLocator(); > > > > TestServices service = locator.getTestServicesSOAP(url); > > > > TestServicesBindingStub stub = (TestServicesBindingStub) > > service; > > > > stub._setProperty(UsernameToken.PASSWORD_TYPE, > > WSConstants.PASSWORD_DIGEST); > > stub._setProperty(WSHandlerConstants.USER, "test1"); > > stub._setProperty(WSHandlerConstants.PW_CALLBACK_REF, > > new PWCallback()); > > > > GPSPosition position = service.getCurrentLocation(-42); > > > > System.out.format("Position of vechile %s: Lat: %s, > > Long: %s, Height: %s", vehicle, position.getLatitude(), > > position.getLongitude(), position.getHeight()); > > } > > > > public static class PWCallback implements CallbackHandler { > > /** > > * @see > > javax.security.auth.callback.CallbackHandler#handle(javax.security.auth. > > callback.Callback[]) > > */ > > public void handle(Callback[] callbacks) throws IOException, > > UnsupportedCallbackException { > > System.err.println("Called with " + callbacks.length + " > > callbacks."); > > for (int i = 0; i < callbacks.length; i++) { > > if (callbacks[i] instanceof WSPasswordCallback) { > > WSPasswordCallback pc = > > (WSPasswordCallback)callbacks[i]; > > // set the password given a username > > if ("test1".equals(pc.getIdentifier())) { > > pc.setPassword("1tset"); > > System.err.println("Set password."); > > } else { > > System.err.println("No password > > found."); > > } > > } else { > > throw new > > UnsupportedCallbackException(callbacks[i], "Unrecognized Callback"); > > } > > } > > } > > } > > } > > > > The stub and locator was autogenerated by eclipse, but if you have any > > better Idea, please tell me. I'm also not tied to axis, this was just > > what my eclipse autogenerated from the WSDL. > > > > I tried several different methods I found in google, all that I deemed > > to work without a tomcat running, but non success. The application > > started fine with no exceptions, but simply did not send the WS-Security > > headers to the server. > > > > With .NET, it is some lines in the App.Config and then barely 20 lines > > of code, and it works: > > > > namespace Soloplan. SoapServer.Tests > > { > > using System; > > using System.Diagnostics; > > class TestConsoleApp > > { > > public static void Main() > > { > > var client = new > > ServiceReference1.TestServicesClient("TestServicesSOAP", > > "https://localhost:62615/TestService"); > > Debug.Assert(client.ClientCredentials != null, "No client > > credentials"); > > client.ClientCredentials.UserName.UserName = "test1"; > > client.ClientCredentials.UserName.Password = "1tset"; > > Console.WriteLine("got client, sending request"); > > var location = client.GetCurrentLocation(-42); > > Console.WriteLine("Got location: {0}/{1}", location.longitude, > > location.latitude); > > Console.ReadLine(); > > } > > } > > } > > > > > > Any ideas? > > Markus Schaber > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
