You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/08/01 18:24:20 UTC

svn commit: r1368101 - /cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java

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