Author: coheigea
Date: Fri Feb 14 12:29:53 2014
New Revision: 1568256

URL: http://svn.apache.org/r1568256
Log:
Use namepaces as well to locate policies for enforcement

Modified:
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/OperationPolicy.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcerFactory.java

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/OperationPolicy.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/OperationPolicy.java?rev=1568256&r1=1568255&r2=1568256&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/OperationPolicy.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/OperationPolicy.java
 Fri Feb 14 12:29:53 2014
@@ -18,24 +18,26 @@
  */
 package org.apache.wss4j.policy.stax;
 
+import javax.xml.namespace.QName;
+
 import org.apache.neethi.Policy;
 
 public class OperationPolicy {
 
-    private String operationName;
+    private QName operationName;
     private String operationAction;
     private Policy policy;
     private String soapMessageVersionNamespace;
 
-    public OperationPolicy(String operationName) {
+    public OperationPolicy(QName operationName) {
         this.operationName = operationName;
     }
 
-    public String getOperationName() {
+    public QName getOperationName() {
         return operationName;
     }
 
-    public void setOperationName(String operationName) {
+    public void setOperationName(QName operationName) {
         this.operationName = operationName;
     }
 

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java?rev=1568256&r1=1568255&r2=1568256&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
 Fri Feb 14 12:29:53 2014
@@ -162,15 +162,24 @@ public class PolicyEnforcer implements S
         return null;
     }
 
-    private OperationPolicy 
findPolicyBySOAPOperationName(List<OperationPolicy> operationPolicies, String 
soapOperationName) {
+    private OperationPolicy 
findPolicyBySOAPOperationName(List<OperationPolicy> operationPolicies, QName 
soapOperationName) {
         Iterator<OperationPolicy> operationPolicyIterator = 
operationPolicies.iterator();
+        OperationPolicy noNamespaceOperation = null;
+        
         while (operationPolicyIterator.hasNext()) {
             OperationPolicy operationPolicy = operationPolicyIterator.next();
-            if (soapOperationName.equals(operationPolicy.getOperationName())) {
-                return operationPolicy;
+            if (operationPolicy.getOperationName() != null) {
+                if 
(soapOperationName.equals(operationPolicy.getOperationName())) {
+                    return operationPolicy;
+                } else if 
("".equals(operationPolicy.getOperationName().getNamespaceURI())
+                    && soapOperationName.getLocalPart().equals(
+                        operationPolicy.getOperationName().getLocalPart())) {
+                    noNamespaceOperation = operationPolicy;
+                }
             }
         }
-        return null;
+        
+        return noNamespaceOperation;
     }
 
     /**
@@ -591,10 +600,10 @@ public class PolicyEnforcer implements S
             }
             
             if (effectivePolicy == null) {
-                effectivePolicy = 
findPolicyBySOAPOperationName(operationPolicies, 
operationSecurityEvent.getOperation().getLocalPart());
+                effectivePolicy = 
findPolicyBySOAPOperationName(operationPolicies, 
operationSecurityEvent.getOperation());
                 if (effectivePolicy == null) {
                     //no policy to the operation given
-                    effectivePolicy = new 
OperationPolicy("NoPolicyFoundForOperation");
+                    effectivePolicy = new OperationPolicy(new QName(null, 
"NoPolicyFoundForOperation"));
                     effectivePolicy.setPolicy(new Policy());
                 }
                 try {

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcerFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcerFactory.java?rev=1568256&r1=1568255&r2=1568256&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcerFactory.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcerFactory.java
 Fri Feb 14 12:29:53 2014
@@ -232,7 +232,8 @@ public class PolicyEnforcerFactory {
 
                     Operation operation = bindingOperation.getOperation();
 
-                    OperationPolicy operationPolicy = new 
OperationPolicy(operation.getName());
+                    OperationPolicy operationPolicy = 
+                        new OperationPolicy(new QName(null, 
operation.getName()));
                     operationPolicyList.add(operationPolicy);
 
                     @SuppressWarnings("unchecked")


Reply via email to