You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by na...@apache.org on 2010/12/22 23:17:39 UTC
svn commit: r1052082 -
/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
Author: nandana
Date: Wed Dec 22 22:17:39 2010
New Revision: 1052082
URL: http://svn.apache.org/viewvc?rev=1052082&view=rev
Log:
RAMPART-136 now the XPath expression is evaluated against the SOAP header
Modified:
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
Modified: axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?rev=1052082&r1=1052081&r2=1052082&view=diff
==============================================================================
--- axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java (original)
+++ axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java Wed Dec 22 22:17:39 2010
@@ -1164,9 +1164,12 @@ public class RampartUtil {
* @return
*/
public static boolean checkRequiredElements(SOAPEnvelope envelope, HashMap decNamespaces, String expression ) {
+
+ // The XPath expression must be evaluated against the SOAP header
+ // http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826519
+ SOAPHeader header = envelope.getHeader();
-
- Set namespaces = findAllPrefixNamespaces(envelope, decNamespaces);
+ Set namespaces = findAllPrefixNamespaces(header, decNamespaces);
try {
XPath xp = new AXIOMXPath(expression);
@@ -1178,7 +1181,7 @@ public class RampartUtil {
xp.addNamespace(tmpNs.getPrefix(), tmpNs.getNamespaceURI());
}
- List selectedNodes = xp.selectNodes(envelope);
+ List selectedNodes = xp.selectNodes(header);
if (selectedNodes.size() == 0 ) {
return false;