You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by ru...@apache.org on 2007/05/08 13:16:23 UTC

svn commit: r536162 - in /webservices/rampart/trunk/java: ./ modules/rampart-core/ modules/rampart-core/src/main/java/org/apache/rampart/ modules/rampart-core/src/main/java/org/apache/rampart/builder/ modules/rampart-core/src/main/java/org/apache/rampa...

Author: ruchithf
Date: Tue May  8 04:16:22 2007
New Revision: 536162

URL: http://svn.apache.org/viewvc?view=rev&rev=536162
Log:
applied Hans' patch in RAMPART-8 - Thanks Hans. Added maven-site-plugin config into pom.xmls

Modified:
    webservices/rampart/trunk/java/modules/rampart-core/pom.xml
    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/builder/SymmetricBindingBuilder.java
    webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
    webservices/rampart/trunk/java/modules/rampart-integration/pom.xml
    webservices/rampart/trunk/java/modules/rampart-policy/pom.xml
    webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java
    webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java
    webservices/rampart/trunk/java/modules/rampart-tests/pom.xml
    webservices/rampart/trunk/java/modules/rampart-trust/pom.xml
    webservices/rampart/trunk/java/pom.xml

Modified: webservices/rampart/trunk/java/modules/rampart-core/pom.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/pom.xml?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/pom.xml (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/pom.xml Tue May  8 04:16:22 2007
@@ -47,4 +47,16 @@
         </dependency>
     </dependencies>
 
+    <reporting>
+      <plugins>
+        <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <configuration>
+         <templateDirectory>${basedir}</templateDirectory>
+         <menu ref="parent" />
+        </configuration>
+        </plugin>
+      </plugins>
+    </reporting>
 </project>

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=536162&r1=536161&r2=536162
==============================================================================
--- 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 Tue May  8 04:16:22 2007
@@ -37,7 +37,6 @@
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Date;
 import java.util.Iterator;
 import java.util.Set;
 import java.util.Vector;
@@ -82,9 +81,9 @@
         
         validateProtectionOrder(data, results);
         
-        validateEncryptedParts(data, results);
+        validateEncryptedParts(data, encryptedParts, results);
 
-        validateSignedPartsHeaders(data, results);
+        validateSignedPartsHeaders(data, signatureParts, results);
 
         //Supporting tokens
         if(!rmd.isInitiator()) {
@@ -302,7 +301,7 @@
         return sigEncrActions;
     }
 
-    private void validateEncryptedParts(ValidatorData data, Vector results) 
+    private void validateEncryptedParts(ValidatorData data, Vector encryptedParts, Vector results) 
     throws RampartException {
         
         RampartMessageData rmd = data.getRampartMessageData();
@@ -321,9 +320,9 @@
         }
         
         int refCount = 0;
-        
-        refCount += rpd.getEncryptedParts().size();
-        
+
+        refCount += encryptedParts.size();
+
         if(encrRefs.size() != refCount) {
             throw new RampartException("invalidNumberOfEncryptedParts", 
                     new String[]{Integer.toString(refCount)});
@@ -331,7 +330,7 @@
         
     }
 
-    private void validateSignedPartsHeaders(ValidatorData data, Vector results) 
+    private void validateSignedPartsHeaders(ValidatorData data, Vector signatureParts, Vector results) 
     throws RampartException {
         
         RampartMessageData rmd = data.getRampartMessageData();
@@ -353,12 +352,8 @@
             }
         }
         
-        RampartPolicyData rpd = rmd.getPolicyData();
-        
-        // Get list to check from Policy
-        Vector signedParts = rpd.getSignedParts();
-        for(int i=0; i<signedParts.size(); i++) {
-            WSEncryptionPart wsep = (WSEncryptionPart) signedParts.get( i );
+        for(int i=0; i<signatureParts.size(); i++) {
+            WSEncryptionPart wsep = (WSEncryptionPart) signatureParts.get( i );
             
             Element headerElement = (Element) WSSecurityUtil.findElement(
                     envelope, wsep.getName(), wsep.getNamespace() );

Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.java Tue May  8 04:16:22 2007
@@ -361,7 +361,7 @@
             sgndEndSuppTokMap = this.handleSupportingTokens(rmd, sgndEndSuppTokens);
     
             //Setup signature parts
-            sigParts = addSignatureParts(sigSuppTokMap, rpd.getSignedParts());
+            sigParts = addSignatureParts(sigSuppTokMap, sigParts);
             sigParts = addSignatureParts(sgndEndSuppTokMap, sigParts);
         } else {
             addSignatureConfirmation(rmd, sigParts);

Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java Tue May  8 04:16:22 2007
@@ -22,6 +22,8 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.Parameter;
 import org.apache.commons.logging.Log;
@@ -64,8 +66,8 @@
 
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Properties;
 import java.util.Vector;
 
@@ -532,26 +534,76 @@
     
     public static Vector getEncryptedParts(RampartMessageData rmd) {
         RampartPolicyData rpd =  rmd.getPolicyData();
-        Vector parts = rpd.getEncryptedParts();
         SOAPEnvelope envelope = rmd.getMsgContext().getEnvelope();
-        if(rpd.isEncryptBody()) {
-            parts.add(new WSEncryptionPart(addWsuIdToElement(envelope.getBody()), "Content"));
-        }
-        
-        return parts;
+        return getPartsAndElements(false, envelope, rpd.isEncryptBody(), rpd.getEncryptedParts(), rpd.getEncryptedElements() );
     }
-    
+
     public static Vector getSignedParts(RampartMessageData rmd) {
         RampartPolicyData rpd =  rmd.getPolicyData();
         SOAPEnvelope envelope = rmd.getMsgContext().getEnvelope();
+        return getPartsAndElements(true, envelope, rpd.isSignBody(), rpd.getSignedParts(), rpd.getSignedElements() );
+    }
     
-        // Copy list of headers to sign from Policy
-        if(rpd.isSignBody()) {
-            rpd.addSignedPart(new WSEncryptionPart(addWsuIdToElement(envelope.getBody())));
+    private static Vector getPartsAndElements(boolean sign, SOAPEnvelope envelope, boolean includeBody, Vector parts, Vector elements) {
+
+        Vector found = new Vector();
+        Vector result = new Vector();
+
+        // check body
+        if(includeBody) {
+            if( sign ) {
+                result.add(new WSEncryptionPart(addWsuIdToElement(envelope.getBody())));
+            } else {
+                result.add(new WSEncryptionPart(addWsuIdToElement(envelope.getBody()), "Content"));
+            }
+            found.add( envelope.getBody() );
+        }
+        
+        // Search envelope header for 'parts' from Policy (SignedParts/EncryptedParts)
+
+        SOAPHeader header = envelope.getHeader();
+
+        for(int i=0; i<parts.size(); i++) {
+            WSEncryptionPart wsep = (WSEncryptionPart) parts.get( i );
+            if( wsep.getName() == null ) {
+                // NO name - search by namespace
+                ArrayList headerList = header.getHeaderBlocksWithNSURI( wsep.getNamespace() );
+              
+                for(int j=0; j<headerList.size(); j++) {
+                    SOAPHeaderBlock shb = (SOAPHeaderBlock) headerList.get( j ); 
+                    
+                    // find reference in envelope
+                    OMElement e = header.getFirstChildWithName( shb.getQName() );
+                  
+                    if( ! found.contains(  e ) ) {
+                        // found new
+                        found.add( e );
+                        
+                        if( sign ) {
+                            result.add(new WSEncryptionPart(e.getLocalName(), wsep.getNamespace(), "Content"));
+                        } else {
+                            result.add(new WSEncryptionPart(e.getLocalName(), wsep.getNamespace(), "Element"));
+                        }
+                    } 
+                }
+            } else {
+                // try to find
+                OMElement e = header.getFirstChildWithName( new QName(wsep.getNamespace(), wsep.getName()) );
+                if( e != null ) {
+                    if( ! found.contains( e ) ) {
+                        // found new (reuse wsep)
+                        found.add( e );
+                        result.add( wsep );
+                    }
+                } 
+            } 
         }
         
-        return rpd.getSignedParts();
+        // ?? Search for 'Elements' here
+
+        return result;
     }
+    
     
     public static KeyGenerator getEncryptionKeyGenerator(String symEncrAlgo) throws WSSecurityException {
         KeyGenerator keyGen;

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=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/pom.xml (original)
+++ webservices/rampart/trunk/java/modules/rampart-integration/pom.xml Tue May  8 04:16:22 2007
@@ -741,5 +741,17 @@
         </dependency>
     </dependencies>
 
+    <reporting>
+      <plugins>
+        <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <configuration>
+         <templateDirectory>${basedir}</templateDirectory>
+         <menu ref="parent" />
+        </configuration>
+        </plugin>
+      </plugins>
+    </reporting>
 
 </project>

Modified: webservices/rampart/trunk/java/modules/rampart-policy/pom.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/pom.xml?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/pom.xml (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/pom.xml Tue May  8 04:16:22 2007
@@ -34,4 +34,17 @@
         </plugins>
     </build>
 
+    <reporting>
+      <plugins>
+        <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <configuration>
+         <templateDirectory>${basedir}</templateDirectory>
+         <menu ref="parent" />
+        </configuration>
+        </plugin>
+      </plugins>
+    </reporting>
+    
 </project>

Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedPartsBuilder.java Tue May  8 04:16:22 2007
@@ -59,7 +59,9 @@
             Header header = new Header();
             
             OMAttribute nameAttribute = element.getAttribute(NAME);
-            header.setName(nameAttribute.getAttributeValue());
+            if( nameAttribute != null ) {
+                header.setName(nameAttribute.getAttributeValue());
+            }
             
             OMAttribute namespaceAttribute = element.getAttribute(NAMESPACE);
             header.setNamespace(namespaceAttribute.getAttributeValue());

Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedPartsBuilder.java Tue May  8 04:16:22 2007
@@ -56,7 +56,9 @@
             Header header = new Header();
             
             OMAttribute nameAttribute = element.getAttribute(NAME);
-            header.setName(nameAttribute.getAttributeValue());
+            if( nameAttribute != null ) {
+                header.setName(nameAttribute.getAttributeValue());
+            }
             
             OMAttribute namespaceAttribute = element.getAttribute(NAMESPACE);
             header.setNamespace(namespaceAttribute.getAttributeValue());

Modified: webservices/rampart/trunk/java/modules/rampart-tests/pom.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-tests/pom.xml?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-tests/pom.xml (original)
+++ webservices/rampart/trunk/java/modules/rampart-tests/pom.xml Tue May  8 04:16:22 2007
@@ -57,4 +57,17 @@
         </dependency>
     </dependencies>
 
+    <reporting>
+      <plugins>
+        <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <configuration>
+         <templateDirectory>${basedir}</templateDirectory>
+         <menu ref="parent" />
+        </configuration>
+        </plugin>
+      </plugins>
+    </reporting>
+    
 </project>

Modified: webservices/rampart/trunk/java/modules/rampart-trust/pom.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-trust/pom.xml?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-trust/pom.xml (original)
+++ webservices/rampart/trunk/java/modules/rampart-trust/pom.xml Tue May  8 04:16:22 2007
@@ -47,4 +47,17 @@
         </dependency>
     </dependencies>
 
+    <reporting>
+      <plugins>
+        <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <configuration>
+         <templateDirectory>${basedir}</templateDirectory>
+         <menu ref="parent" />
+        </configuration>
+        </plugin>
+      </plugins>
+    </reporting>
+
 </project>

Modified: webservices/rampart/trunk/java/pom.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/pom.xml?view=diff&rev=536162&r1=536161&r2=536162
==============================================================================
--- webservices/rampart/trunk/java/pom.xml (original)
+++ webservices/rampart/trunk/java/pom.xml Tue May  8 04:16:22 2007
@@ -470,5 +470,17 @@
         </snapshotRepository>
     </distributionManagement>
 
-
+    <reporting>
+      <plugins>
+        <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <configuration>
+         <templateDirectory>${basedir}</templateDirectory>
+         <menu ref="parent" />
+        </configuration>
+        </plugin>
+      </plugins>
+    </reporting>
+    
 </project>