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?

Reply via email to