[ 
https://issues.apache.org/jira/browse/RAMPART-276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

S.Uthaiyashankar reassigned RAMPART-276:
----------------------------------------

    Assignee: S.Uthaiyashankar  (was: Ruchith Udayanga Fernando)

> SignedEncryptedElements can incorrectly set the namespace of child xpaths 
> during serialization
> ----------------------------------------------------------------------------------------------
>
>                 Key: RAMPART-276
>                 URL: https://issues.apache.org/jira/browse/RAMPART-276
>             Project: Rampart
>          Issue Type: Bug
>          Components: rampart-policy
>    Affects Versions: 1.5
>            Reporter: Dave Bryant
>            Assignee: S.Uthaiyashankar
>
> If you create a security policy that includes signed or encrypted elements, 
> where the SignedEncryptedElements object contains multiple xpaths for 
> specifying parts of the message to sign/encrypt, and a namespace map to 
> qualify the prefixes used in xpaths exists, then serializing the 
> SignedEncryptedElements object incorrectly sets the namespace URI for the 
> second <sp:XPath> element that is output.
> For example, if you specify two xpaths (xs:fred and rns1:bob) to be signed 
> and setup the namespace map appropriately to define the xs and rns1 prefixes, 
> the second XPath element is output using the xs prefix (the XML schema 
> namespace) instead of the sp prefix (the security policy namespace).
> {code:xml}
> <sp:SignedElements 
> xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
>     <sp:XPath 
> xmlns:rns1="http://www.orionhealth.com/rhapsody/2009/11/TestService";>//xs:fred</sp:XPath>
>     <xs:XPath 
> xmlns:rns1="http://www.orionhealth.com/rhapsody/2009/11/TestService";>//rns1:bob</xs:XPath>
> </sp:SignedElements>
> {code}
> The problem was introduced in revision 76056 of SignedEncryptedElements.java 
> (http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java?r1=653992&r2=760506)
>  where support was added to output the defined namespaces.  The problem is 
> that the local variables 'prefix' and 'namespaceURI' is assigned when output 
> the namespace map, and then that same variable is reused to output the next 
> XPath.
> A patch that resolves this problem is below:
> {code}
> Index: 
> src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
> ===================================================================
> --- src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java  
> (revision 61550)
> +++ src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java  
> (working copy)
> @@ -122,9 +122,9 @@
>              Iterator<String> namespaces = 
> declaredNamespaces.keySet().iterator();
>  
>              while(namespaces.hasNext()) {
> -                prefix = (String) namespaces.next();
> -                namespaceURI = (String) declaredNamespaces.get(prefix);
> -                writer.writeNamespace(prefix,namespaceURI);
> +                final String declaredPrefix = (String) namespaces.next();
> +                final String declaredNamespaceURI = (String) 
> declaredNamespaces.get(declaredPrefix);
> +                writer.writeNamespace(declaredPrefix,declaredNamespaceURI);
>              }
>  
>              writer.writeCharacters(xpathExpression);
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to