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