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 2008/08/25 22:42:55 UTC

svn commit: r688868 - in /cxf/trunk: api/src/main/java/org/apache/cxf/ws/policy/ rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/ rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/in...

Author: dkulp
Date: Mon Aug 25 13:42:54 2008
New Revision: 688868

URL: http://svn.apache.org/viewvc?rev=688868&view=rev
Log:
Bunch more policy refactory to get nested policies asserted and their interceptors added

Modified:
    cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfo.java
    cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfoMap.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInFaultInterceptor.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInInterceptor.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyOutInterceptor.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EndpointPolicyImpl.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyInInterceptor.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutFaultInterceptor.java
    cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutInterceptor.java
    cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EffectivePolicyImplTest.java
    cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EndpointPolicyImplTest.java
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityPolicyInterceptorProvider.java
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/model/TransportBinding.java
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JOutInterceptor.java

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfo.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfo.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfo.java Mon Aug 25 13:42:54 2008
@@ -40,4 +40,7 @@
     public PolicyAssertion getAssertion() {
         return assertion;
     }
+    public String toString() {
+        return assertion.getName() + ":" + asserted;
+    }
 }

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfoMap.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfoMap.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfoMap.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionInfoMap.java Mon Aug 25 13:42:54 2008
@@ -45,7 +45,7 @@
     }
     
     public AssertionInfoMap(Collection<PolicyAssertion> assertions) {
-        super(assertions.size());
+        super(assertions.size() < 6 ? 6 : assertions.size());
         for (PolicyAssertion a : assertions) {
             putAssertionInfo(a);
         }
@@ -74,15 +74,32 @@
 
     }
     
-    public boolean supportsAlternative(Collection<PolicyAssertion> alternative,
+    public boolean supportsAlternative(PolicyAssertion assertion,
                                        List<QName> errors) {
         boolean pass = true;
-        for (PolicyAssertion a : alternative) {          
-            if (!a.isAsserted(this)) {
-                errors.add(a.getName());
-                pass = false;
+        PolicyAssertion a = (PolicyAssertion)assertion;
+        if (!a.isAsserted(this) && !a.isOptional()) {
+            errors.add(a.getName());
+            pass = false;
+        }
+        Policy p = a.getPolicy();
+        if (p != null) {
+            Iterator it = p.getAlternatives();
+            while (it.hasNext()) {
+                List<PolicyAssertion> lst = CastUtils.cast((List<?>)it.next());
+                for (PolicyAssertion p2 : lst) {
+                    pass &= supportsAlternative(p2, errors);
+                }
             }
         }
+        return pass || a.isOptional();
+    }
+    public boolean supportsAlternative(Collection<PolicyAssertion> alternative,
+                                       List<QName> errors) {
+        boolean pass = true;
+        for (PolicyAssertion a : alternative) {
+            pass &= supportsAlternative(a, errors);
+        }
         return pass;
     }
     

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInFaultInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInFaultInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInFaultInterceptor.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInFaultInterceptor.java Mon Aug 25 13:42:54 2008
@@ -79,7 +79,7 @@
         LOG.fine("faultInterceptors: " + faultInterceptors);
         for (Interceptor i : faultInterceptors) {
             msg.getInterceptorChain().add(i);
-            LOG.log(Level.INFO, "Added interceptor of type {0}", i.getClass().getSimpleName());
+            LOG.log(Level.FINE, "Added interceptor of type {0}", i.getClass().getSimpleName());
         }
         
         // insert assertions of endpoint's fault vocabulary into message

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInInterceptor.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyInInterceptor.java Mon Aug 25 13:42:54 2008
@@ -76,7 +76,7 @@
         List<Interceptor> interceptors = ep.getInterceptors();
         for (Interceptor i : interceptors) {
             msg.getInterceptorChain().add(i);
-            LOG.log(Level.INFO, "Added interceptor of type {0}", i.getClass().getSimpleName());            
+            LOG.log(Level.FINE, "Added interceptor of type {0}", i.getClass().getSimpleName());            
         }
         
         // insert assertions of endpoint's vocabulary into message

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyOutInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyOutInterceptor.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ClientPolicyOutInterceptor.java Mon Aug 25 13:42:54 2008
@@ -84,7 +84,7 @@
         List<Interceptor> interceptors = effectivePolicy.getInterceptors();
         for (Interceptor i : interceptors) {            
             msg.getInterceptorChain().add(i);
-            LOG.log(Level.INFO, "Added interceptor of type {0}", i.getClass().getSimpleName());
+            LOG.log(Level.FINE, "Added interceptor of type {0}", i.getClass().getSimpleName());
         }
         
         // insert assertions of the chosen alternative into the message

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java Mon Aug 25 13:42:54 2008
@@ -21,8 +21,11 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.ResourceBundle;
+import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -31,6 +34,7 @@
 import org.apache.cxf.common.i18n.BundleUtils;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.interceptor.Interceptor;
 import org.apache.cxf.service.model.BindingFaultInfo;
 import org.apache.cxf.service.model.BindingMessageInfo;
@@ -130,18 +134,41 @@
     void initialiseInterceptors(PolicyEngineImpl engine) {
         PolicyInterceptorProviderRegistry reg 
             = engine.getBus().getExtension(PolicyInterceptorProviderRegistry.class);
-        List<Interceptor> out = new ArrayList<Interceptor>();
+        Set<Interceptor> out = new LinkedHashSet<Interceptor>();
         for (PolicyAssertion a : getChosenAlternative()) {
-            if (a.isOptional()) {
-                continue;
+            initialiseInterceptors(reg, engine, out, a);
+        }        
+        setInterceptors(new ArrayList<Interceptor>(out));
+    }
+    
+    
+    protected Collection<PolicyAssertion> getSupportedAlternatives(PolicyEngineImpl engine,
+                                                                   Policy p) {
+        Collection<PolicyAssertion> alternatives = new ArrayList<PolicyAssertion>();
+        for (Iterator it = p.getAlternatives(); it.hasNext();) {
+            List<PolicyAssertion> alternative = CastUtils.cast((List)it.next(), PolicyAssertion.class);
+            if (engine.supportsAlternative(alternative, null)) {
+                alternatives.addAll(alternative);
             }
-            QName qn = a.getName();
-            PolicyInterceptorProvider pp = reg.get(qn);
-            if (null != pp) {
-                out.addAll(pp.getOutInterceptors());
+        }
+        return alternatives;
+    }
+
+    void initialiseInterceptors(PolicyInterceptorProviderRegistry reg,
+                                PolicyEngineImpl engine,
+                                Set<Interceptor> out,
+                                PolicyAssertion a) {
+        QName qn = a.getName();
+        PolicyInterceptorProvider pp = reg.get(qn);
+        if (null != pp) {
+            out.addAll(pp.getOutInterceptors());
+        }
+        Policy p = a.getPolicy();
+        if (p != null) {
+            for (PolicyAssertion a2 : getSupportedAlternatives(engine, p)) {
+                initialiseInterceptors(reg, engine, out, a2);
             }
         }
-        setInterceptors(out);
     }
     
     // for tests

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EndpointPolicyImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EndpointPolicyImpl.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EndpointPolicyImpl.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EndpointPolicyImpl.java Mon Aug 25 13:42:54 2008
@@ -21,8 +21,8 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.ResourceBundle;
 import java.util.Set;
@@ -194,41 +194,54 @@
         }
     }
 
+    Collection<PolicyAssertion> getSupportedAlternatives(Policy p) {
+        Collection<PolicyAssertion> alternatives = new ArrayList<PolicyAssertion>();
+        for (Iterator it = p.getAlternatives(); it.hasNext();) {
+            List<PolicyAssertion> alternative = CastUtils.cast((List)it.next(), PolicyAssertion.class);
+            if (engine.supportsAlternative(alternative, null)) {
+                alternatives.addAll(alternative);
+            }
+        }
+        return alternatives;
+    }
+
+    void initializeInterceptors(PolicyInterceptorProviderRegistry reg,
+                                Set<Interceptor> out,
+                                PolicyAssertion a, 
+                                boolean fault) {
+        QName qn = a.getName();
+        PolicyInterceptorProvider pp = reg.get(qn);
+        if (null != pp) {
+            out.addAll(fault ? pp.getInFaultInterceptors() : pp.getInInterceptors());
+        }
+        Policy p = a.getPolicy();
+        if (p != null) {
+            for (PolicyAssertion a2 : getSupportedAlternatives(p)) {
+                initializeInterceptors(reg, out, a2, fault);
+            }
+        }
+    }
+
     void initializeInterceptors() {
         PolicyInterceptorProviderRegistry reg 
             = engine.getBus().getExtension(PolicyInterceptorProviderRegistry.class);
-        interceptors = new ArrayList<Interceptor>();
-        if (requestor) {
-            faultInterceptors = new ArrayList<Interceptor>();
-        }
         
-        Set<QName> v = new HashSet<QName>();
-        for (PolicyAssertion a : vocabulary) {
-            v.add(a.getName());
-        }
-        
-        for (QName qn : v) {
-            PolicyInterceptorProvider pp = reg.get(qn);
-            if (null != pp) {
-                interceptors.addAll(pp.getInInterceptors());
+        Set<Interceptor> out = new LinkedHashSet<Interceptor>();
+        if (getChosenAlternative() != null) {
+            for (PolicyAssertion a : getChosenAlternative()) {
+                initializeInterceptors(reg, out, a, false);
             }
         }
-        
+        interceptors = new ArrayList<Interceptor>(out);
+
         if (!requestor) {
             return;
         }
-        
-        Set<QName> faultV = new HashSet<QName>();
-        for (PolicyAssertion a : faultVocabulary) {
-            faultV.add(a.getName());
+        out.clear();
+        for (PolicyAssertion a : getChosenAlternative()) {
+            initializeInterceptors(reg, out, a, true);
         }
-        
-        for (QName qn : faultV) {
-            PolicyInterceptorProvider pp = reg.get(qn);
-            if (null != pp) {
-                faultInterceptors.addAll(pp.getInFaultInterceptors());
-            }
-        }        
+        faultInterceptors = new ArrayList<Interceptor>(out);
     }
     
     // for test

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyInInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyInInterceptor.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyInInterceptor.java Mon Aug 25 13:42:54 2008
@@ -76,7 +76,7 @@
         List<Interceptor> interceptors = ep.getInterceptors();
         for (Interceptor i : interceptors) {
             msg.getInterceptorChain().add(i);
-            LOG.log(Level.INFO, "Added interceptor of type {0}", i.getClass().getSimpleName());
+            LOG.log(Level.FINE, "Added interceptor of type {0}", i.getClass().getSimpleName());
         }
         
         // insert assertions of endpoint's vocabulary into message

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutFaultInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutFaultInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutFaultInterceptor.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutFaultInterceptor.java Mon Aug 25 13:42:54 2008
@@ -90,7 +90,7 @@
         List<Interceptor> interceptors = effectivePolicy.getInterceptors();
         for (Interceptor oi : interceptors) {
             msg.getInterceptorChain().add(oi);
-            LOG.log(Level.INFO, "Added interceptor of type {0}", oi.getClass().getSimpleName());
+            LOG.log(Level.FINE, "Added interceptor of type {0}", oi.getClass().getSimpleName());
         }
         
         // insert assertions of the chosen alternative into the message

Modified: cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutInterceptor.java (original)
+++ cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ServerPolicyOutInterceptor.java Mon Aug 25 13:42:54 2008
@@ -80,7 +80,7 @@
         List<Interceptor> interceptors = effectivePolicy.getInterceptors();
         for (Interceptor oi : interceptors) {
             msg.getInterceptorChain().add(oi);
-            LOG.log(Level.INFO, "Added interceptor of type {0}", oi.getClass().getSimpleName());           
+            LOG.log(Level.FINE, "Added interceptor of type {0}", oi.getClass().getSimpleName());           
         }
         
         // insert assertions of the chosen alternative into the message

Modified: cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EffectivePolicyImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EffectivePolicyImplTest.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EffectivePolicyImplTest.java (original)
+++ cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EffectivePolicyImplTest.java Mon Aug 25 13:42:54 2008
@@ -274,7 +274,6 @@
         setupPolicyInterceptorProviderRegistry(engine, reg);
         PolicyAssertion a = control.createMock(PolicyAssertion.class);        
         alternative.add(a);
-        EasyMock.expect(a.isOptional()).andReturn(true);
         control.replay();
         epi.initialiseInterceptors(engine);
         assertEquals(0, epi.getInterceptors().size());
@@ -282,7 +281,6 @@
         
         control.reset();
         setupPolicyInterceptorProviderRegistry(engine, reg);
-        EasyMock.expect(a.isOptional()).andReturn(false);
         QName qn = new QName("http://x.y.z", "a");
         EasyMock.expect(a.getName()).andReturn(qn);
         EasyMock.expect(reg.get(qn)).andReturn(null);
@@ -293,7 +291,6 @@
         
         control.reset();
         setupPolicyInterceptorProviderRegistry(engine, reg);
-        EasyMock.expect(a.isOptional()).andReturn(false);
         EasyMock.expect(a.getName()).andReturn(qn);        
         PolicyInterceptorProvider pp = control.createMock(PolicyInterceptorProvider.class);               
         EasyMock.expect(reg.get(qn)).andReturn(pp);

Modified: cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EndpointPolicyImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EndpointPolicyImplTest.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EndpointPolicyImplTest.java (original)
+++ cxf/trunk/rt/ws/policy/src/test/java/org/apache/cxf/ws/policy/EndpointPolicyImplTest.java Mon Aug 25 13:42:54 2008
@@ -346,19 +346,20 @@
         v.add(mockAssertion(aqn, requestor ? 2 : 1, false));
         fv.addAll(v);
         epi.setVocabulary(v);
+        epi.setChosenAlternative(v);
         epi.setFaultVocabulary(fv);
         
         PolicyInterceptorProviderRegistry reg = control.createMock(PolicyInterceptorProviderRegistry.class);
         setupPolicyInterceptorProviderRegistry(engine, reg);
         
         PolicyInterceptorProvider app = control.createMock(PolicyInterceptorProvider.class);               
-        EasyMock.expect(reg.get(aqn)).andReturn(app).times(requestor ? 2 : 1);
+        EasyMock.expect(reg.get(aqn)).andReturn(app).anyTimes();
         Interceptor api = control.createMock(Interceptor.class);
         EasyMock.expect(app.getInInterceptors())
-            .andReturn(Collections.singletonList(api));
+            .andReturn(Collections.singletonList(api)).anyTimes();
         if (requestor) {
             EasyMock.expect(app.getInFaultInterceptors())
-                .andReturn(Collections.singletonList(api));
+                .andReturn(Collections.singletonList(api)).anyTimes();
         }
         
         control.replay();

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java Mon Aug 25 13:42:54 2008
@@ -52,6 +52,9 @@
         ASSERTION_TYPES.add(SP12Constants.WSS11);
         ASSERTION_TYPES.add(SP12Constants.SIGNED_SUPPORTING_TOKENS);
         ASSERTION_TYPES.add(SP12Constants.USERNAME_TOKEN);
+        
+        ASSERTION_TYPES.add(SP11Constants.TRANSPORT_BINDING);
+        ASSERTION_TYPES.add(SP12Constants.TRANSPORT_BINDING);
 
     }
 

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityPolicyInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityPolicyInterceptorProvider.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityPolicyInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityPolicyInterceptorProvider.java Mon Aug 25 13:42:54 2008
@@ -35,9 +35,9 @@
     private static final Collection<QName> ASSERTION_TYPES;
     static {
         ASSERTION_TYPES = new ArrayList<QName>();
-        ASSERTION_TYPES.add(SP11Constants.TRANSPORT_BINDING);
+        //ASSERTION_TYPES.add(SP11Constants.TRANSPORT_BINDING);
+        //ASSERTION_TYPES.add(SP12Constants.TRANSPORT_BINDING);
         ASSERTION_TYPES.add(SP11Constants.TRANSPORT_TOKEN);
-        ASSERTION_TYPES.add(SP12Constants.TRANSPORT_BINDING);
         ASSERTION_TYPES.add(SP12Constants.TRANSPORT_TOKEN);
     }
 

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/model/TransportBinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/model/TransportBinding.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/model/TransportBinding.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/model/TransportBinding.java Mon Aug 25 13:42:54 2008
@@ -124,12 +124,38 @@
         writer.writeEndElement();
 
     }
-    public PolicyComponent normalize() {        
+    public PolicyComponent normalize() {
+        return this;
+        /*
         Policy p = new Policy();
         ExactlyOne ea = new ExactlyOne();
         p.addPolicyComponent(ea);
         All all = new All();
+        if (transportToken != null) {
+            all.addPolicyComponent(transportToken);
+        }
+        if (isIncludeTimestamp()) {
+            all.addPolicyComponent(new PrimitiveAssertion(SP12Constants.INCLUDE_TIMESTAMP));
+        }
+        if (getLayout() != null) {
+            all.addPolicyComponent(getLayout());
+        }
         ea.addPolicyComponent(all);
+        PolicyComponent pc = p.normalize(true);
+        if (pc instanceof Policy) {
+            return new NestedPrimitiveAssertion(getName(), false, (Policy)pc, true);
+        } else {
+            p = new Policy();
+            p.addPolicyComponent(pc);
+            return new NestedPrimitiveAssertion(getName(), false, p, true);
+        }
+        */
+    }
+    public Policy getPolicy() {
+        Policy p = new Policy();
+        ExactlyOne ea = new ExactlyOne();
+        p.addPolicyComponent(ea);
+        All all = new All();
         if (transportToken != null) {
             all.addPolicyComponent(transportToken);
         }
@@ -139,7 +165,15 @@
         if (getLayout() != null) {
             all.addPolicyComponent(getLayout());
         }
+        ea.addPolicyComponent(all);
+        PolicyComponent pc = p.normalize(true);
+        if (pc instanceof Policy) {
+            return (Policy)pc;
+        } else {
+            p = new Policy();
+            p.addPolicyComponent(pc);
+            return p;
+        }
         
-        return p.normalize(true);
     }
 }

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java Mon Aug 25 13:42:54 2008
@@ -172,6 +172,13 @@
                     }
                 }                    
             }
+            ais = aim.get(SP12Constants.TRANSPORT_BINDING);
+            if (ais != null) {
+                for (AssertionInfo ai : ais) {
+                    ai.setAsserted(true);
+                }                    
+            }
+
         }
     }
 

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JOutInterceptor.java?rev=688868&r1=688867&r2=688868&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JOutInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JOutInterceptor.java Mon Aug 25 13:42:54 2008
@@ -113,6 +113,12 @@
                         }
                     }                    
                 }
+                ais = aim.get(SP12Constants.TRANSPORT_BINDING);
+                if (ais != null) {
+                    for (AssertionInfo ai : ais) {
+                        ai.setAsserted(true);
+                    }                    
+                }
                 if (timestamp != null) {
                     timestamp.prependToHeader(secHeader);
                 }