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")