Thanks for following up on this, Nandana. I tried to build from trunk so I could try this WSDL with the current code, but the build doesn't work for me at present (I get a failure running org.apache.axis2.fastinfoset.FastInfosetTest).

 - Dennis


Nandana Mihindukulasooriya wrote:
Yes, I agree, I will look in to that and see whether we can handle this more gracefully. There was an issue [1] and it is now fixed in the trunk.

thanks,
nandana

[1] - http://issues.apache.org/jira/browse/RAMPART-176

On Mon, Mar 16, 2009 at 12:37 PM, Dennis Sosnoski <d...@sosnoski.com <mailto:d...@sosnoski.com>> wrote:

    Yes, you're right that the WSDL I attached to the last email is
    invalid according to the specification. It still needs to be
    handled in a better way than just throwing an exception with the
    "can't serialize the policy" message, though.

    The same serialize problem happens with the attached version of
    the WSDL, which does contain the required <sp:TransportToken>, but
    does not contain an <sp:HttpsToken>. As far as I can see from the
    WSDL documentation, this is allowed. It's also essentially the
    same as the sample01/policy.xml in the Rampart distribution, which
    hopefully has been checked for validity.

     - Dennis


    Nandana Mihindukulasooriya wrote:

        Hi Dennis,

            If you look at the WS - SecurityPolicy specification, 8.3
        TransportBinding Assertion definition, TransportToken is a
        mandatory element in the TransportBinding. So I don't think
        this is really a bug, the policy in the WSDL seem to be invalid.

        thanks,
        Nandana

        [1] -
        http://specs.xmlsoap.org/ws/2005/07/securitypolicy/ws-securitypolicy.pdf


        On Mon, Mar 16, 2009 at 9:30 AM, Dennis Sosnoski
        <d...@sosnoski.com <mailto:d...@sosnoski.com>
        <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>>> wrote:

           Hi Nandana,

           Yes, I understand that the Transport assertion is not
        contributing
           anything useful in this case. AFAIK it's still valid,
        though, and
           needs to be supported.

           Is the error fixed in the current (and 1.5 branch) codebase? If
           not, should I create a Jira?

           Thanks,

            - Dennis


           Nandana Mihindukulasooriya wrote:

               Hi Dennis,

                   I think the problem is with the serialization of
        Transport
               binding assertion without a transport token. What are your
               security requirements ? If you only need to have the
        username
               token , you can remove the Transport binding assertion
               completely and have only the SupportingTokens assertion
        in the
               policy. If you also need to enforce https transport,
        you can
               add a HttpsToken as a transport token.

               thanks,
               Nandana

               On Mon, Mar 16, 2009 at 4:12 AM, Dennis Sosnoski
               <d...@sosnoski.com <mailto:d...@sosnoski.com>
        <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>>
               <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>
        <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>>>> wrote:

                  Hi Nandana,

                  I've attached one of several variations I've tried which
               results
                  in this error. I did find that if I take out the
               TransportBinding
                  part I don't get the error.

                  Thanks for taking a look!

                   - Dennis


                  Nandana Mihindukulasooriya wrote:

                      Hi Dennis,
                             Can you post the WSDL you are code generating
               against ?

                      thanks,
                      nandana

                      On Fri, Mar 13, 2009 at 3:09 AM, Dennis Sosnoski
                      <d...@sosnoski.com <mailto:d...@sosnoski.com>
        <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>>
               <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>
        <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>>>
                      <mailto:d...@sosnoski.com
        <mailto:d...@sosnoski.com> <mailto:d...@sosnoski.com
        <mailto:d...@sosnoski.com>>
               <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>
        <mailto:d...@sosnoski.com <mailto:d...@sosnoski.com>>>>> wrote:

                         I've been trying to use the client-side code
        generation
                      support for
                         WS-SecurityPolicy in WSDL, with Axis2 1.4.1
        and Rampart
                      1.4. I've
                         tried
                         several variations of where I place the policy in
               the WSDL,
                      including
                         using reference and embedding it directly in the
                      <wsdl:binding>, but
                         each time I get:

                            [java] Exception in thread "main"
org.apache.axis2.wsdl.codegen.CodeGenerationException: org.apache.axis2.wsdl.codegen.CodeGenerationException:
                         java.lang.RuntimeException: can't serialize
        the policy
                         ..
                            [java]     at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:271)


                            [java]     at
org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
                            [java]     at
org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
                            [java] Caused by:
org.apache.axis2.wsdl.codegen.CodeGenerationException:
                         java.lang.RuntimeException: can't serialize
        the policy
                         ..
                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.emitStub(AxisServiceBasedMultiLanguageEmitter.java:534)


                            [java]     at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:260)


                            [java]     ... 2
                         more
                            [java] Caused by:
        java.lang.RuntimeException: can't
                      serialize the
                         policy ..
                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.getInputElement(AxisServiceBasedMultiLanguageEmitter.java:2732)


                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.generateMethodElement(AxisServiceBasedMultiLanguageEmitter.java:2261)



                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.loadOperations(AxisServiceBasedMultiLanguageEmitter.java:2151)


                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.createDOMDocumentForInterface(AxisServiceBasedMultiLanguageEmitter.java:1207)


                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.writeInterface(AxisServiceBasedMultiLanguageEmitter.java:1163)


                            [java]     at
org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.emitStub(AxisServiceBasedMultiLanguageEmitter.java:492)


                            [java]     ... 3
                         more
                            [java] Java Result: 1

                         Has anyone been able to get the client-side
               generation for
                         WS-SecurityPolicy in WSDL to work? If so, can you
               supply an
                         example WSDL?

                         Thanks,

                          - Dennis

                         --    Dennis M. Sosnoski
                         SOA and Web Services in Java
                         Axis2 Training and Consulting
                         http://www.sosnoski.com -
        http://www.sosnoski.co.nz
                         Seattle, WA +1-425-939-0576 - Wellington, NZ
               +64-4-298-6117






-- Nandana Mihindukulasooriya WSO2 inc.

        http://nandana83.blogspot.com/
        http://www.wso2.org




--
Nandana Mihindukulasooriya WSO2 inc.

http://nandana83.blogspot.com/
http://www.wso2.org

Reply via email to