Hi, Did you find the solution to your problem? I searched and it involves a file name axis2.xml. You need that file. Then declare both username and encryption. I will try to build an example. Unfortunately, I don't have .net with me to test out.
Nan On Fri, Sep 10, 2010 at 8:01 AM, Markus Schaber <[email protected]> wrote: > Hi, Martin, > > > > I just cannot figure out how your advice is related to my problem, sorry. > > > > 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 > > ________________________________ > > Von: Martin Gainty [mailto:[email protected]] > Gesendet: Freitag, 10. September 2010 13:32 > An: [email protected] > Betreff: RE: AW: Axis and WS-Security on a standalone client > > > > You must define operation of GetCurrentLocation() with required parameters > as well as the return parameter > > <!-- wsdl --> > <definitions > xmlns:tns="http://soapinterop.org/wsdl" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> > <types> > <schema > xmlns="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://soapinterop.org/types/part" > targetNamespace="http://soapinterop.org/types/part"> > <element name="vehicleId" type="xsd:int"> > <element name="Lat" type="xsd:int"/> > <element name="Long" type="xsd:int"> > </schema> > </types> > <message name="input"> > <part name="input" element="vehicleId"/> > </message> > <message name="output"> > <part name="output1" element="tns:Lat"/> > <part name="output2" element="tns:Long"/> > </message> > > <portType name="getCurrentLocationPortType"> > <!-- > Throws an empty fault > --> > <operation name="getCurrentLocation" > > <input message="tns:input"/> > <output message="tns:output"/> > </operation> > > Martin Gainty > ______________________________________________ > Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité > > Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene > Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte > Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht > dient lediglich dem Austausch von Informationen und entfaltet keine > rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von > E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. > > Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le > destinataire prévu, nous te demandons avec bonté que pour satisfaire > informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie > de ceci est interdite. Ce message sert à l'information seulement et n'aura > pas n'importe quel effet légalement obligatoire. Étant donné que les email > peuvent facilement être sujets à la manipulation, nous ne pouvons accepter > aucune responsabilité pour le contenu fourni. > > > > >> Subject: AW: Axis and WS-Security on a standalone client >> Date: Fri, 10 Sep 2010 08:11:46 +0200 >> From: [email protected] >> To: [email protected] >> >> 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] >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
