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>