[
https://issues.apache.org/jira/browse/RAMPART-64?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533192
]
Murali Krishnan Gunasekaran commented on RAMPART-64:
----------------------------------------------------
This exception [org.apache.axis2.dataretrieval.DataRetrievalException:
com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "sp" ]
also occurs when the <IncludeTimestamp> element is included in the <policy>.
I believe the problem is that XmlPrimitiveAssertion instances are not being
serialized properly (their
NS prefix attribute is missing when getting serialized). While debugging the
serialize(Policy,OutputStream) method of
org.apache.axis2.util.ExternalPolicySerializer class, I noticed that the Policy
element
is getting serialized like this:
<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
Id="UTOverTransport">
<wsp:ExactlyOne>
<wsp:All>
<sp:SignedSupportingTokens
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:UsernameToken
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"/>
</wsp:Policy>
</sp:SignedSupportingTokens>
<sp:IncludeTimestamp/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Here <IncludeTimestamp> is missing the prefix declaration. This doesn't happen
for the SupportingToken assertion
whose serialize(XMLStreamWriter) method works correctly.
Hope this helps in resolving the problem.
Murali
> Issues with security configurations and useOriginalwsdl parameter
> -----------------------------------------------------------------
>
> Key: RAMPART-64
> URL: https://issues.apache.org/jira/browse/RAMPART-64
> Project: Rampart
> Issue Type: Bug
> Components: rampart-policy
> Affects Versions: 1.2
> Environment: Windows XP SP2, JDK 1.6, Eclipse 3.2
> Reporter: Jorge Fernández
> Priority: Blocker
> Attachments: JIRA70.rar, Screenshot.png.zip, WebServiceTest.rar
>
>
> I have <sp:RequireKeyIdentifierReference/> assertion in both Initiator Token
> and RecipientToken and <sp:MustSupportRefKeyIdentifier/>.
> I expected that the service should send SKI reference always, but, for the
> encryption key it sends IssuerSerial reference. Can I force it to use always
> SKI reference?
> When I replace signedParts by signedElements assertion, I can access the
> service but the WSDL is not generated (when useOriginalwsdl is false) because
> it throws an exception:
> org.apache.axis2.dataretrieval.DataRetrievalException:
> com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "sp"
> at [row,col {unknown-source}]: [1,1028]
>
> org.apache.axis2.dataretrieval.AxisDataLocatorImpl.getData(AxisDataLocatorImpl.java:81)
> org.apache.axis2.description.AxisService.getData(AxisService.java:2143)
> org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1007)
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:857)
>
> org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:221)
> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:225)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> caused by
> org.apache.axis2.dataretrieval.DataRetrievalException:
> com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "sp"
> at [row,col {unknown-source}]: [1,1028]
>
> org.apache.axis2.dataretrieval.WSDLDataLocator.outputInlineForm(WSDLDataLocator.java:136)
>
> org.apache.axis2.dataretrieval.WSDLDataLocator.getData(WSDLDataLocator.java:71)
>
> org.apache.axis2.dataretrieval.AxisDataLocatorImpl.getData(AxisDataLocatorImpl.java:77)
> org.apache.axis2.description.AxisService.getData(AxisService.java:2143)
> org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1007)
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:857)
>
> org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:221)
> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:225)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> caused by
> org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxParsingException:
> Undeclared namespace prefix "sp"
> at [row,col {unknown-source}]: [1,1028]
>
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:211)
> org.apache.axiom.om.impl.llom.OMNodeImpl.build(OMNodeImpl.java:315)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:608)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:577)
> org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:114)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:236)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:192)
>
> org.apache.axis2.description.AxisService2OM.addPolicyAsExtElement(AxisService2OM.java:905)
>
> org.apache.axis2.description.AxisService2OM.generateSOAP11Binding(AxisService2OM.java:514)
>
> org.apache.axis2.description.AxisService2OM.generateOM(AxisService2OM.java:184)
>
> org.apache.axis2.dataretrieval.WSDLDataLocator.outputInlineForm(WSDLDataLocator.java:132)
>
> org.apache.axis2.dataretrieval.WSDLDataLocator.getData(WSDLDataLocator.java:71)
>
> org.apache.axis2.dataretrieval.AxisDataLocatorImpl.getData(AxisDataLocatorImpl.java:77)
> org.apache.axis2.description.AxisService.getData(AxisService.java:2143)
> org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1007)
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:857)
>
> org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:221)
> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:225)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> caused by
> com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "sp"
> at [row,col {unknown-source}]: [1,1028]
> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:458)
>
> com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:383)
>
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2807)
>
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2718)
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1004)
>
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:125)
> org.apache.axiom.om.impl.llom.OMNodeImpl.build(OMNodeImpl.java:315)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:608)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:577)
> org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:114)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:236)
>
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:192)
>
> org.apache.axis2.description.AxisService2OM.addPolicyAsExtElement(AxisService2OM.java:905)
>
> org.apache.axis2.description.AxisService2OM.generateSOAP11Binding(AxisService2OM.java:514)
>
> org.apache.axis2.description.AxisService2OM.generateOM(AxisService2OM.java:184)
>
> org.apache.axis2.dataretrieval.WSDLDataLocator.outputInlineForm(WSDLDataLocator.java:132)
>
> org.apache.axis2.dataretrieval.WSDLDataLocator.getData(WSDLDataLocator.java:71)
>
> org.apache.axis2.dataretrieval.AxisDataLocatorImpl.getData(AxisDataLocatorImpl.java:77)
> org.apache.axis2.description.AxisService.getData(AxisService.java:2143)
> org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1007)
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:857)
>
> org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:221)
> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:225)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.