Hi, Matt,
It seems that we have a similar problem... 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] <mailto:[email protected]> | Internet: www.soloplan.de <http://www.soloplan.de/> Geschäftsführer: Wolfgang Heidl, HRB 5304 Kempten ________________________________ Von: Matt Graham [mailto:[email protected]] Gesendet: Freitag, 10. September 2010 00:06 An: [email protected] Betreff: [AXIS2] - Adding ws-security headers from wsdl2java generated client... My head asplode. If someone can point me in the right direction here, I'll be very grateful. I have a third party wsdl which I've used (wsdl2java) to generate my client stub and test classes. When I run my test, the SOAP message is being generated just fine, but the ws-security headers are forever missing. With all the weblogs, tutorials and posts I've read, I've gotten all turned around. Here is what I've done, and a few clarifying questions: WSDL: Looking at the wsdl, there is nothing there about security policies, etc. Actually, nothing at all about security that I can see. Does there need to be? (Not that I have any control over this... just trying to understand.) STUB: I've left the stub untouched, and can use it's methods, and call to the web service successfully (except for the security errors.) RAMPART: I've been trying to use Rampart to enable security, and add the headers. To do this, I've unzipped the axis2-1.5 zip and the Rampart 1.5 zip together so the repository/modules directory would have all the right files. TEST: Then, in my test code, I added the following: ... ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("src/test/java/com/thirdparty/soap/user/axis2-1.5/repository", null); com.pearson.soap.user.UserManagementStub stub = new com.pearson.soap.user.UserManagementStub(ctx); ServiceClient sc = stub._getServiceClient(); sc.engageModule("rampart"); Options options = sc.getOptions(); options.setUserName("apache"); options.setPassword("password"); options.setProperty("Created", "20011-05-01T15:05:01=06"); options.setProperty("Expires", "2011-05-01T15:05:01=06"); options.setProperty("UsernameToken", myToken); ... Then I process the request. It goes through, but never includes the <soap:Header> section at all. This is a sample of the header I'm trying to generate. <soap:Header> <wsse:Security soap:mustUnderstand="1"> <wsu:Timestamp wsu:Id="Timestamp-b23cf78f-09f8-4eec-9106- 3a9a52819842"> <wsu:Created>2007-04-23T22:37:12Z</wsu:Created> <wsu:Expires>2007-04-23T22:38:12Z</wsu:Expires> </wsu:Timestamp> <wsse:UsernameToken wsu:Id="SecurityToken-8836043e-8f9b-4e56- 8e2b-5610e9ce280f"> <wsse:Username>test</wsse:Username> <wsse:Password Type="http://docs.oasis- open.org/wss/2004/01/oasis-200401-wss-username-token-profile- 1.0#PasswordDigest">43h23932189t10yhahg09</wsse:Password> <wsse:Nonce>f2949g0939g203yh203hg</wsse:Nonce> <wsu:Created>2007-04-23T22:37:12Z</wsu:Created> </wsse:UsernameToken> </wsse:Security> </soap:Header> Can someone set me straight? Is Rampart the way to go here? Am I missing any steps, or files I need to include? Maybe I needed rampart somewhere when I used wsdl2java?
