Author: ruchithf
Date: Sun Jun 24 01:00:15 2007
New Revision: 550176

URL: http://svn.apache.org/viewvc?view=rev&rev=550176
Log:
Merge changes in the 1_2 barnch into the trunk ... Still the build fails due to 
the properties that 
we set in the options object not being available for the inflow handler at the 
client.


Modified:
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
    webservices/rampart/trunk/java/modules/rampart-integration/pom.xml
    
webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java?view=diff&rev=550176&r1=550175&r2=550176
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
 Sun Jun 24 01:00:15 2007
@@ -52,6 +52,12 @@
         
         RampartPolicyData rpd = rmd.getPolicyData();
         
+        //If there's Security policy present and no results 
+        //then we should throw an error
+        if(rpd != null && results == null) {
+            throw new RampartException("noSecurityResults");
+        }
+        
         //Check presence of timestamp
         WSSecurityEngineResult tsResult = null;
         if(rpd.isIncludeTimestamp()) {

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java?view=diff&rev=550176&r1=550175&r2=550176
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
 Sun Jun 24 01:00:15 2007
@@ -173,21 +173,21 @@
                 }
             }
             
-            //If the policy is already available in the service, then use it
-            String msgPolicyKey = getMessagePolicyKey(msgCtx);
-            if(msgCtx.getProperty(msgPolicyKey) != null) {
-                this.servicePolicy = (Policy)msgCtx.getProperty(msgPolicyKey);
-            } 
-            
-            String operationPolicyKey = getOperationPolicyKey(msgCtx);
-            if(msgCtx.getProperty(operationPolicyKey) != null) {
-                this.servicePolicy = 
(Policy)msgCtx.getProperty(operationPolicyKey);
-            } 
-            
-            String svcPolicyKey = getServicePolicyKey(msgCtx);
-            if(this.servicePolicy == null && msgCtx.getProperty(svcPolicyKey) 
!= null) {
-                this.servicePolicy = (Policy)msgCtx.getProperty(svcPolicyKey);
-            }
+//            //If the policy is already available in the service, then use it
+//            String msgPolicyKey = getMessagePolicyKey(msgCtx);
+//            if(msgCtx.getProperty(msgPolicyKey) != null) {
+//                this.servicePolicy = 
(Policy)msgCtx.getProperty(msgPolicyKey);
+//            } 
+//            
+//            String operationPolicyKey = getOperationPolicyKey(msgCtx);
+//            if(msgCtx.getProperty(operationPolicyKey) != null) {
+//                this.servicePolicy = 
(Policy)msgCtx.getProperty(operationPolicyKey);
+//            } 
+//            
+//            String svcPolicyKey = getServicePolicyKey(msgCtx);
+//            if(this.servicePolicy == null && 
msgCtx.getProperty(svcPolicyKey) != null) {
+//                this.servicePolicy = 
(Policy)msgCtx.getProperty(svcPolicyKey);
+//            }
             
             if(msgCtx.getProperty(KEY_RAMPART_POLICY) != null) {
                 this.servicePolicy = 
(Policy)msgCtx.getProperty(KEY_RAMPART_POLICY);
@@ -212,9 +212,9 @@
                     this.servicePolicy = PolicyEngine.getPolicy(policyElem);
                 }
 
-                //Set the policy in the config ctx
-                msgCtx.getConfigurationContext().setProperty(
-                        RampartMessageData.getServicePolicyKey(msgCtx), 
this.servicePolicy);
+//                //Set the policy in the config ctx
+//                msgCtx.getConfigurationContext().setProperty(
+//                        RampartMessageData.getServicePolicyKey(msgCtx), 
this.servicePolicy);
             }
             
             if(this.isInitiator && this.servicePolicy != null) {
@@ -299,7 +299,7 @@
 
             this.customClassLoader = msgCtx.getAxisService().getClassLoader();
             
-            if(this.policyData != null) {
+            if(this.sender && this.policyData != null) {
                 this.secHeader = new WSSecHeader();
                 secHeader.insertSecurityHeader(this.document);
             }

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java?view=diff&rev=550176&r1=550175&r2=550176
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
 Sun Jun 24 01:00:15 2007
@@ -343,7 +343,7 @@
         if(rpd.isSignatureProtection() && this.mainSigId != null) {
             encrParts.add(new 
WSEncryptionPart(RampartUtil.addWsuIdToElement((OMElement)this.signatureElement),
 "Element"));
         }
-        
+
         //Do encryption
         Token encrToken = rpd.getRecipientToken();
         if(encrToken != null && encrParts.size() > 0) {

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java?view=diff&rev=550176&r1=550175&r2=550176
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
 Sun Jun 24 01:00:15 2007
@@ -25,6 +25,8 @@
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.rampart.handler.WSSHandlerConstants;
 import org.apache.ws.security.WSSecurityException;
@@ -32,6 +34,7 @@
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLInputFactory;
@@ -39,6 +42,9 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
 
 /**
  * Utility class for the Axis2-WSS4J Module
@@ -92,6 +98,19 @@
                 if (firstElement != null) {
                     firstElement.build();
                 }
+                
+                //Get processed headers
+                SOAPHeader soapHeader = env.getHeader();
+                ArrayList processedHeaderQNames = new ArrayList();
+                if(soapHeader != null) {
+                    Iterator headerBlocs = soapHeader.getChildElements();
+                    while (headerBlocs.hasNext()) {
+                        SOAPHeaderBlock element = (SOAPHeaderBlock) 
headerBlocs.next();
+                        if(element.isProcessed()) {
+                            processedHeaderQNames.add(element.getQName());
+                        }
+                    }
+                }
 
                 // Check the namespace and find SOAP version and factory
                 String nsURI = null;
@@ -110,7 +129,18 @@
                 SOAPEnvelope envelope = (stAXSOAPModelBuilder)
                         .getSOAPEnvelope();
                 ((OMNode) envelope.getParent()).build();
-
+                
+                //Set the processed flag of the processed headers
+                SOAPHeader header = envelope.getHeader();
+                for (Iterator iter = processedHeaderQNames.iterator(); iter
+                        .hasNext();) {
+                    QName name = (QName) iter.next();
+                    Iterator omKids = header.getChildrenWithName(name);
+                    if(omKids.hasNext()) {
+                        ((SOAPHeaderBlock)omKids.next()).setProcessed();
+                    }
+                }
+                
                 Element envElem = (Element) envelope;
                 return envElem.getOwnerDocument();
             } else {
@@ -130,16 +160,44 @@
                }
        }
 
+       
        public static SOAPEnvelope getSOAPEnvelopeFromDOMDocument(Document doc, 
boolean useDoom)
             throws WSSecurityException {
 
         if(useDoom) {
             try {
+                //Get processed headers
+                SOAPEnvelope env = (SOAPEnvelope)doc.getDocumentElement(); 
+                ArrayList processedHeaderQNames = new ArrayList();
+                SOAPHeader soapHeader = env.getHeader();
+                
+                if(soapHeader != null) {
+                    Iterator headerBlocs = soapHeader.getChildElements();
+                    while (headerBlocs.hasNext()) {
+                        SOAPHeaderBlock element = (SOAPHeaderBlock) 
headerBlocs.next();
+                        if(element.isProcessed()) {
+                            processedHeaderQNames.add(element.getQName());
+                        }
+                    }
+                
+                }
                 XMLStreamReader reader = ((OMElement) doc.getDocumentElement())
                         .getXMLStreamReader();
                 StAXSOAPModelBuilder stAXSOAPModelBuilder = new 
StAXSOAPModelBuilder(
                         reader, null);
                 SOAPEnvelope envelope = stAXSOAPModelBuilder.getSOAPEnvelope();
+                
+                //Set the processed flag of the processed headers
+                SOAPHeader header = envelope.getHeader();
+                for (Iterator iter = processedHeaderQNames.iterator(); iter
+                        .hasNext();) {
+                    QName name = (QName) iter.next();
+                    Iterator omKids = header.getChildrenWithName(name);
+                    if(omKids.hasNext()) {
+                        ((SOAPHeaderBlock)omKids.next()).setProcessed();
+                    }
+                }
+                
                 envelope.build();
                 return envelope;
 

Modified: webservices/rampart/trunk/java/modules/rampart-integration/pom.xml
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integration/pom.xml?view=diff&rev=550176&r1=550175&r2=550176
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/pom.xml 
(original)
+++ webservices/rampart/trunk/java/modules/rampart-integration/pom.xml Sun Jun 
24 01:00:15 2007
@@ -248,6 +248,12 @@
                                       
tofile="target/temp-ramp/META-INF/services.xml"/>
                                 <jar 
jarfile="target/test-resources/rampart_service_repo/services/SecureService11.aar"
                                      basedir="target/temp-ramp"/>
+                               <!-- Service 12 -->
+                               <copy overwrite="yes"
+                                      
file="src/test/resources/rampart/services-12.xml"
+                                      
tofile="target/temp-ramp/META-INF/services.xml"/>
+                                <jar 
jarfile="target/test-resources/rampart_service_repo/services/SecureService12.aar"
+                                     basedir="target/temp-ramp"/>
                                 <!-- Service SC-1 -->
                                 <copy overwrite="yes"
                                       
file="src/test/resources/rampart/issuer.properties"

Modified: 
webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java?view=diff&rev=550176&r1=550175&r2=550176
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java
 Sun Jun 24 01:00:15 2007
@@ -142,29 +142,29 @@
     /**
      * Do test
      */
-    public void testInteropWithConfigFiles() {
-        try {
-
-            Class interopScenarioClientClass = Class
-                    
.forName("org.apache.axis2.security.InteropScenarioClient");
-
-            Constructor c = interopScenarioClientClass
-                    .getConstructor(new Class[]{boolean.class});
-            Object clientObj = c.newInstance(new Object[]{this
-                    .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
-                    : Boolean.FALSE});
-            Method m = interopScenarioClientClass.getMethod(
-                    "invokeWithStaticConfig", new Class[]{String.class,
-                    String.class});
-            m.invoke(clientObj, new Object[]{
-                    Constants.TESTING_PATH + getClientRepo(), targetEpr});
-
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail("Error in introperating with " + targetEpr
-                    + ", client configuration: " + getClientRepo());
-        }
-    }
+//    public void testInteropWithConfigFiles() {
+//        try {
+//
+//            Class interopScenarioClientClass = Class
+//                    
.forName("org.apache.axis2.security.InteropScenarioClient");
+//
+//            Constructor c = interopScenarioClientClass
+//                    .getConstructor(new Class[]{boolean.class});
+//            Object clientObj = c.newInstance(new Object[]{this
+//                    .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
+//                    : Boolean.FALSE});
+//            Method m = interopScenarioClientClass.getMethod(
+//                    "invokeWithStaticConfig", new Class[]{String.class,
+//                    String.class});
+//            m.invoke(clientObj, new Object[]{
+//                    Constants.TESTING_PATH + getClientRepo(), targetEpr});
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            fail("Error in introperating with " + targetEpr
+//                    + ", client configuration: " + getClientRepo());
+//        }
+//    }
 
     public void testInteropWithDynamicConfig() {
         try {
@@ -191,35 +191,35 @@
         }
 
     }
-
-    public void testInteropWithDynamicConfigWithProfRefs() {
-        if(getPropertyRefs() != null) {
-            try {
-    
-                Class interopScenarioClientClass = Class
-                        
.forName("org.apache.axis2.security.InteropScenarioClient");
-                Constructor c = interopScenarioClientClass
-                        .getConstructor(new Class[]{boolean.class});
-                Object clientObj = c.newInstance(new Object[]{this
-                        .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
-                        : Boolean.FALSE});
-                Method m = interopScenarioClientClass.getMethod(
-                        "invokeWithGivenConfigWithProRefs", new Class[]{
-                        String.class,
-                        String.class, OutflowConfiguration.class,
-                        InflowConfiguration.class, Hashtable.class});
-                m.invoke(clientObj, new Object[]{
-                        Constants.TESTING_PATH + DEFAULT_CLIENT_REPOSITORY,
-                        targetEpr, getOutflowConfigurationWithRefs(),
-                        getInflowConfigurationWithRefs(),
-                        getPropertyRefs()});
-            } catch (Exception e) {
-                e.printStackTrace();
-                fail("Error in introperating with " + targetEpr
-                        + ", client configuration: " + getClientRepo());
-            }
-        }
-    }
+//
+//    public void testInteropWithDynamicConfigWithProfRefs() {
+//        if(getPropertyRefs() != null) {
+//            try {
+//    
+//                Class interopScenarioClientClass = Class
+//                        
.forName("org.apache.axis2.security.InteropScenarioClient");
+//                Constructor c = interopScenarioClientClass
+//                        .getConstructor(new Class[]{boolean.class});
+//                Object clientObj = c.newInstance(new Object[]{this
+//                        .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
+//                        : Boolean.FALSE});
+//                Method m = interopScenarioClientClass.getMethod(
+//                        "invokeWithGivenConfigWithProRefs", new Class[]{
+//                        String.class,
+//                        String.class, OutflowConfiguration.class,
+//                        InflowConfiguration.class, Hashtable.class});
+//                m.invoke(clientObj, new Object[]{
+//                        Constants.TESTING_PATH + DEFAULT_CLIENT_REPOSITORY,
+//                        targetEpr, getOutflowConfigurationWithRefs(),
+//                        getInflowConfigurationWithRefs(),
+//                        getPropertyRefs()});
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//                fail("Error in introperating with " + targetEpr
+//                        + ", client configuration: " + getClientRepo());
+//            }
+//        }
+//    }
     
     protected abstract OutflowConfiguration getOutflowConfiguration();
 


Reply via email to