Author: dkulp
Date: Wed Aug 1 16:24:20 2012
New Revision: 1368101
URL: http://svn.apache.org/viewvc?rev=1368101&view=rev
Log:
[CXF-4450] Evaluate the wsam:Action attributes as well
Modified:
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
Modified:
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java?rev=1368101&r1=1368100&r2=1368101&view=diff
==============================================================================
---
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
(original)
+++
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
Wed Aug 1 16:24:20 2012
@@ -581,7 +581,17 @@ public class STSClient implements Config
BindingInfo bi = client.getEndpoint().getBinding().getBindingInfo();
for (BindingOperationInfo boi : bi.getOperations()) {
SoapOperationInfo soi = boi.getExtensor(SoapOperationInfo.class);
- if (soi != null && soi.getAction() != null &&
soi.getAction().endsWith(suffix)) {
+ String soapAction = soi != null ? soi.getAction() : null;
+ Object o = boi.getOperationInfo().getInput()
+ .getExtensionAttribute(new
QName("http://www.w3.org/2007/05/addressing/metadata",
+ "Action"));
+ if (o instanceof QName) {
+ o = ((QName)o).getLocalPart();
+ }
+ String wsamAction = o == null ? null : o.toString();
+
+ if ((soapAction != null && soapAction.endsWith(suffix))
+ || (wsamAction != null && wsamAction.endsWith(suffix))) {
PolicyEngine pe = bus.getExtension(PolicyEngine.class);
Conduit conduit = client.getConduit();
EffectivePolicy effectivePolicy =
pe.getEffectiveClientRequestPolicy(client.getEndpoint()