You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by we...@apache.org on 2008/09/20 13:34:55 UTC

svn commit: r697352 - /webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java

Author: werner
Date: Sat Sep 20 04:34:55 2008
New Revision: 697352

URL: http://svn.apache.org/viewvc?rev=697352&view=rev
Log:
A small update to enable the different digest algorithms. Currently SHA-1 is being phased out, SHA256 is the replacement.
By default the SHA-1 WSSecSignature uses SHA-1.
Refer to TestWSSecurityNew18.java how to use this extension.

Modified:
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java?rev=697352&r1=697351&r2=697352&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java Sat Sep 20 04:34:55 2008
@@ -116,6 +116,8 @@
     private String customTokenValueType;
 
     private String customTokenId;
+    
+    private String digestAlgo = "http://www.w3.org/2000/09/xmldsig#sha1";
 
 	/**
 	 * Constructor.
@@ -200,6 +202,23 @@
 		return canonAlgo;
 	}
 
+    /**
+     * @return the digestAlgo
+     */
+    public String getDigestAlgo() {
+        return digestAlgo;
+    }
+
+    /**
+     * Set the string that defines which digest algorithm to use
+     * 
+     * @param digestAlgo the digestAlgo to set
+     */
+    public void setDigestAlgo(String digestAlgo) {
+        this.digestAlgo = digestAlgo;
+    }
+    
+	
 	/**
 	 * @param usernameToken
 	 *            The usernameToken to set.
@@ -492,7 +511,7 @@
 										getInclusivePrefixes(toSignById))
 										.getElement());
 					}
-					sig.addDocument("#" + idToSign, transforms);
+					sig.addDocument("#" + idToSign, transforms, digestAlgo);
 				} else if (elemName.equals("Token")) {
 					transforms
 							.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
@@ -507,7 +526,7 @@
 													getInclusivePrefixes(secHeader.getSecurityHeader()))
 													.getElement());
 						}
-						sig.addDocument("#" + certUri, transforms);
+						sig.addDocument("#" + certUri, transforms, digestAlgo);
 					} else {
 						if (wssConfig.isWsiBSPCompliant()) {
 							transforms.item(0).getElement().appendChild(
@@ -516,13 +535,13 @@
 													.getElement()))
 											.getElement());
 						}
-						sig.addDocument("#" + keyInfoUri, transforms);
+						sig.addDocument("#" + keyInfoUri, transforms, digestAlgo);
 					}
 				} else if (elemName.equals("STRTransform")) { // STRTransform
 					Element ctx = createSTRParameter(document);
 					transforms.addTransform(
 							STRTransform.implementedTransformURI, ctx);
-					sig.addDocument("#" + strUri, transforms);
+					sig.addDocument("#" + strUri, transforms, digestAlgo);
 				} else if (elemName.equals("Assertion")) { // Assertion
 
 					String id = null;
@@ -546,7 +565,7 @@
 					String prefix = WSSecurityUtil.setNamespace(body,
 							WSConstants.WSU_NS, WSConstants.WSU_PREFIX);
 					body.setAttributeNS(WSConstants.WSU_NS, prefix + ":Id", id);
-					sig.addDocument("#" + id, transforms);
+					sig.addDocument("#" + id, transforms, digestAlgo);
 
 				} else {
 					Element body = (Element) WSSecurityUtil.findElement(
@@ -564,7 +583,7 @@
 										getInclusivePrefixes(body))
 										.getElement());
 					}
-					sig.addDocument("#" + setWsuId(body), transforms);
+					sig.addDocument("#" + setWsuId(body), transforms, digestAlgo);
 				}
 			} catch (TransformationException e1) {
 				throw new WSSecurityException(
@@ -837,5 +856,4 @@
         this.encrKeySha1value = encrKeySha1value;
     }
 	
-	
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org