You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by jp...@apache.org on 2013/02/12 04:51:45 UTC

svn commit: r1445031 - in /cxf/branches/2.7.x-fixes: rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/ systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/javafirst/

Author: jpell
Date: Tue Feb 12 03:51:45 2013
New Revision: 1445031

URL: http://svn.apache.org/r1445031
Log:
CXF-4813 re-enabled disabled test and fixed an invalid test assertion, based on Dan's fix to wsp policy alternatives support at operation level

Modified:
    cxf/branches/2.7.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java
    cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/JavaFirstPolicyServiceTest.java
    cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/javafirst/OperationSimpleServiceImpl.java

Modified: cxf/branches/2.7.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java?rev=1445031&r1=1445030&r2=1445031&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java (original)
+++ cxf/branches/2.7.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/EffectivePolicyImpl.java Tue Feb 12 03:51:45 2013
@@ -110,8 +110,14 @@ public class EffectivePolicyImpl impleme
                     PolicyEngineImpl engine, 
                     boolean requestor, boolean request) {
         Assertor assertor = initialisePolicy(ei, boi, engine, requestor, request, null);
-        chooseAlternative(engine, assertor);
-        initialiseInterceptors(engine, requestor);  
+        if (requestor || !request) {
+            chooseAlternative(engine, assertor);
+            initialiseInterceptors(engine, requestor);
+        } else {
+            //incoming server should not choose an alternative, need to include all the policies
+            Collection<Assertion> alternative = engine.getAssertions(this.policy, true);
+            this.setChosenAlternative(alternative);
+        }
     }
     
     public void initialise(EndpointInfo ei, 

Modified: cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/JavaFirstPolicyServiceTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/JavaFirstPolicyServiceTest.java?rev=1445031&r1=1445030&r2=1445031&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/JavaFirstPolicyServiceTest.java (original)
+++ cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/JavaFirstPolicyServiceTest.java Tue Feb 12 03:51:45 2013
@@ -50,7 +50,6 @@ import org.apache.ws.security.WSConstant
 import org.apache.ws.security.handler.WSHandlerConstants;
 
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -206,7 +205,7 @@ public class JavaFirstPolicyServiceTest 
     }
 
     @Test
-    public void testNoAltOperationNoClientCertAlternativePolicy() {
+    public void testNoAltOperationNoClientCertPolicy() {
         System.setProperty("testutil.ports.JavaFirstPolicyServer.3", PORT3);
 
         ClassPathXmlApplicationContext clientContext = new ClassPathXmlApplicationContext(new String[] {
@@ -255,7 +254,7 @@ public class JavaFirstPolicyServiceTest 
     }
 
     @Test
-    public void testNoAltOperationClientCertAlternativePolicy() {
+    public void testNoAltOperationClientCertPolicy() {
         System.setProperty("testutil.ports.JavaFirstPolicyServer.3", PORT3);
 
         ClassPathXmlApplicationContext clientContext = new ClassPathXmlApplicationContext(new String[] {
@@ -299,7 +298,6 @@ public class JavaFirstPolicyServiceTest 
     }
 
     @Test
-    @Ignore
     public void testOperationNoClientCertAlternativePolicy() {
         System.setProperty("testutil.ports.JavaFirstPolicyServer.3", PORT3);
 
@@ -310,6 +308,9 @@ public class JavaFirstPolicyServiceTest 
         OperationSimpleService simpleService = clientContext
             .getBean("OperationSimpleServiceClient", OperationSimpleService.class);
 
+        // no security on ping!
+        simpleService.ping();
+        
         try {
             simpleService.doStuff();
             fail("Expected exception as no credentials");
@@ -327,12 +328,12 @@ public class JavaFirstPolicyServiceTest 
             assertTrue(true);
         }
 
+        // this is successful because the alternative policy allows a password to be specified.
         wssOut.setProperties(getPasswordProperties("alice", "password"));
         simpleService.doStuff();
     }
 
     @Test
-    @Ignore
     public void testOperationClientCertAlternativePolicy() {
         System.setProperty("testutil.ports.JavaFirstPolicyServer.3", PORT3);
 
@@ -343,6 +344,9 @@ public class JavaFirstPolicyServiceTest 
         OperationSimpleService simpleService = clientContext
             .getBean("OperationSimpleServiceClient", OperationSimpleService.class);
 
+        // no security on ping!
+        simpleService.ping();
+        
         try {
             simpleService.doStuff();
             fail("Expected exception as no credentials");
@@ -355,20 +359,16 @@ public class JavaFirstPolicyServiceTest 
         wssOut.setProperties(getNoPasswordProperties("alice"));
         simpleService.doStuff();
 
+        // this is successful because the alternative policy allows a password to be specified.
         wssOut.setProperties(getPasswordProperties("alice", "password"));
-
-        try {
-            simpleService.doStuff();
-            fail("Expected exception password is not supported");
-        } catch (SOAPFaultException e) {
-            assertTrue(true);
-        }
+        simpleService.doStuff();
     }
 
     private WSS4JOutInterceptor addToClient(Object svc) {
         Client client = ClientProxy.getClient(svc);
         WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor();
         client.getEndpoint().getOutInterceptors().add(wssOut);
+        client.getOutInterceptors().add(wssOut);
         return wssOut;
     }
 

Modified: cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/javafirst/OperationSimpleServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/javafirst/OperationSimpleServiceImpl.java?rev=1445031&r1=1445030&r2=1445031&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/javafirst/OperationSimpleServiceImpl.java (original)
+++ cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/javafirst/OperationSimpleServiceImpl.java Tue Feb 12 03:51:45 2013
@@ -28,7 +28,8 @@ import org.apache.cxf.annotations.Policy
 endpointInterface = "org.apache.cxf.systest.ws.policy.javafirst.OperationSimpleService", 
 serviceName = "OperationSimpleService", targetNamespace = "http://www.example.org/contract/OperationSimpleService")
 public class OperationSimpleServiceImpl implements OperationSimpleService {
-    @Policy(uri = "classpath:/java_first_policies/AlternativesPolicy.xml", placement = Placement.BINDING_OPERATION)
+    @Policy(uri = "classpath:/java_first_policies/AlternativesPolicy.xml", 
+        placement = Placement.BINDING_OPERATION_INPUT)
     @Override
     public void doStuff() {
     }