You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2011/04/14 18:07:31 UTC
svn commit: r1092372 - in /santuario/xml-security-java/trunk/src:
main/java/org/apache/xml/security/
main/java/org/apache/xml/security/algorithms/
main/java/org/apache/xml/security/algorithms/implementations/
main/java/org/apache/xml/security/signature...
Author: coheigea
Date: Thu Apr 14 16:07:31 2011
New Revision: 1092372
URL: http://svn.apache.org/viewvc?rev=1092372&view=rev
Log:
Refactoring of SignatureAlgorithm
Modified:
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java
santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/KeyValueTest.java
santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/NoKeyInfoTest.java
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java Thu Apr 14 16:07:31 2011
@@ -27,8 +27,14 @@ import javax.xml.parsers.DocumentBuilder
import org.apache.xml.security.algorithms.JCEMapper;
import org.apache.xml.security.algorithms.SignatureAlgorithm;
+import org.apache.xml.security.algorithms.SignatureAlgorithmSpi;
+import org.apache.xml.security.algorithms.implementations.IntegrityHmac;
+import org.apache.xml.security.algorithms.implementations.SignatureBaseRSA;
+import org.apache.xml.security.algorithms.implementations.SignatureDSA;
+import org.apache.xml.security.algorithms.implementations.SignatureECDSA;
import org.apache.xml.security.c14n.Canonicalizer;
import org.apache.xml.security.keys.keyresolver.KeyResolver;
+import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.transforms.Transform;
import org.apache.xml.security.transforms.TransformSpi;
import org.apache.xml.security.transforms.Transforms;
@@ -74,6 +80,8 @@ public class Init {
private static Map<String, String> defaultNamespacePrefixes = new HashMap<String, String>();
private static Map<String, Class<? extends TransformSpi>> defaultTransforms =
new HashMap<String, Class<? extends TransformSpi>>();
+ private static Map<String, Class<? extends SignatureAlgorithmSpi>> defaultSignatures =
+ new HashMap<String, Class<? extends SignatureAlgorithmSpi>>();
static {
//
@@ -128,6 +136,61 @@ public class Init {
defaultTransforms.put(
Transforms.TRANSFORM_XPATH2FILTER04, TransformXPath2Filter.class
);
+
+ //
+ // default URI-SignatureAlgorithmSpi class pairs
+ //
+ defaultSignatures.put(SignatureDSA.URI, SignatureDSA.class);
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1, SignatureBaseRSA.SignatureRSASHA1.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_MAC_HMAC_SHA1, IntegrityHmac.IntegrityHmacSHA1.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5,
+ SignatureBaseRSA.SignatureRSAMD5.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160,
+ SignatureBaseRSA.SignatureRSARIPEMD160.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256, SignatureBaseRSA.SignatureRSASHA256.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384, SignatureBaseRSA.SignatureRSASHA384.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512, SignatureBaseRSA.SignatureRSASHA512.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA1, SignatureECDSA.SignatureECDSASHA1.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA256, SignatureECDSA.SignatureECDSASHA256.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA384, SignatureECDSA.SignatureECDSASHA384.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512, SignatureECDSA.SignatureECDSASHA512.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5, IntegrityHmac.IntegrityHmacMD5.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160, IntegrityHmac.IntegrityHmacRIPEMD160.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_MAC_HMAC_SHA256, IntegrityHmac.IntegrityHmacSHA256.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_MAC_HMAC_SHA384, IntegrityHmac.IntegrityHmacSHA384.class
+ );
+ defaultSignatures.put(
+ XMLSignature.ALGO_ID_MAC_HMAC_SHA512, IntegrityHmac.IntegrityHmacSHA512.class
+ );
}
/**
@@ -378,6 +441,15 @@ public class Init {
Transform.register(key, (Class<TransformSpi>)defaultTransforms.get(key));
}
+ //
+ // Set the default signature algorithms
+ //
+ for (String key : defaultSignatures.keySet()) {
+ SignatureAlgorithm.register(
+ key, (Class<SignatureAlgorithmSpi>)defaultSignatures.get(key)
+ );
+ }
+
} catch (Exception ex) {
log.error(ex);
ex.printStackTrace();
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java Thu Apr 14 16:07:31 2011
@@ -19,13 +19,14 @@ package org.apache.xml.security.algorith
import java.security.Key;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.xml.security.algorithms.implementations.IntegrityHmac;
import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException;
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.utils.ClassLoaderUtils;
import org.apache.xml.security.utils.Constants;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -43,40 +44,13 @@ public class SignatureAlgorithm extends
org.apache.commons.logging.LogFactory.getLog(SignatureAlgorithm.class);
/** All available algorithm classes are registered here */
- private static Map<String, Class<?>> algorithmHash = new HashMap<String, Class<?>>(10);
+ private static Map<String, Class<SignatureAlgorithmSpi>> algorithmHash =
+ new ConcurrentHashMap<String, Class<SignatureAlgorithmSpi>>();
- private static ThreadLocal<Map<String, SignatureAlgorithmSpi>> instancesSigning =
- new ThreadLocal<Map<String, SignatureAlgorithmSpi>>() {
- protected Map<String, SignatureAlgorithmSpi> initialValue() {
- return new HashMap<String, SignatureAlgorithmSpi>();
- };
- };
-
- private static ThreadLocal<Map<String, SignatureAlgorithmSpi>> instancesVerify =
- new ThreadLocal<Map<String, SignatureAlgorithmSpi>>() {
- protected Map<String, SignatureAlgorithmSpi> initialValue() {
- return new HashMap<String, SignatureAlgorithmSpi>();
- };
- };
-
- private static ThreadLocal<Map<String, Key>> keysSigning =
- new ThreadLocal<Map<String, Key>>() {
- protected Map<String, Key> initialValue() {
- return new HashMap<String, Key>();
- };
- };
-
- private static ThreadLocal<Map<String, Key>> keysVerify =
- new ThreadLocal<Map<String, Key>>() {
- protected Map<String, Key> initialValue() {
- return new HashMap<String, Key>();
- };
- };
-
/** Field signatureAlgorithm */
- private SignatureAlgorithmSpi signatureAlgorithm = null;
+ private final SignatureAlgorithmSpi signatureAlgorithm;
- private String algorithmURI;
+ private final String algorithmURI;
/**
* Constructor SignatureAlgorithm
@@ -88,58 +62,9 @@ public class SignatureAlgorithm extends
public SignatureAlgorithm(Document doc, String algorithmURI) throws XMLSecurityException {
super(doc, algorithmURI);
this.algorithmURI = algorithmURI;
- }
-
- private void initializeAlgorithm(boolean isForSigning) throws XMLSignatureException {
- signatureAlgorithm = isForSigning ? getInstanceForSigning(algorithmURI)
- : getInstanceForVerify(algorithmURI);
- this.signatureAlgorithm.engineGetContextFromElement(this.constructionElement);
- }
-
- private static SignatureAlgorithmSpi getInstanceForSigning(String algorithmURI)
- throws XMLSignatureException {
- SignatureAlgorithmSpi result = (instancesSigning.get()).get(algorithmURI);
- if (result != null) {
- result.reset();
- return result;
- }
- result = buildSigner(algorithmURI);
- (instancesSigning.get()).put(algorithmURI, result);
- return result;
- }
-
- private static SignatureAlgorithmSpi getInstanceForVerify(String algorithmURI)
- throws XMLSignatureException {
- SignatureAlgorithmSpi result = (instancesVerify.get()).get(algorithmURI);
- if (result != null) {
- result.reset();
- return result;
- }
- result = buildSigner(algorithmURI);
- (instancesVerify.get()).put(algorithmURI, result);
- return result;
- }
-
- private static SignatureAlgorithmSpi buildSigner(String algorithmURI)
- throws XMLSignatureException {
- try {
- Class<?> implementingClass =
- SignatureAlgorithm.getImplementingClass(algorithmURI);
- if (log.isDebugEnabled()) {
- log.debug("Create URI \"" + algorithmURI + "\" class \""
- + implementingClass + "\"");
- }
- return (SignatureAlgorithmSpi)implementingClass.newInstance();
- } catch (IllegalAccessException ex) {
- Object exArgs[] = { algorithmURI, ex.getMessage() };
- throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
- } catch (InstantiationException ex) {
- Object exArgs[] = { algorithmURI, ex.getMessage() };
- throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
- } catch (NullPointerException ex) {
- Object exArgs[] = { algorithmURI, ex.getMessage() };
- throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
- }
+
+ signatureAlgorithm = getSignatureAlgorithmSpi(algorithmURI);
+ signatureAlgorithm.engineGetContextFromElement(this.constructionElement);
}
/**
@@ -153,13 +78,14 @@ public class SignatureAlgorithm extends
public SignatureAlgorithm(
Document doc, String algorithmURI, int HMACOutputLength
) throws XMLSecurityException {
- this(doc, algorithmURI);
+ super(doc, algorithmURI);
this.algorithmURI = algorithmURI;
- initializeAlgorithm(true);
- this.signatureAlgorithm.engineSetHMACOutputLength(HMACOutputLength);
- ((IntegrityHmac)this.signatureAlgorithm).engineAddContextToElement(
- this.constructionElement
- );
+
+ signatureAlgorithm = getSignatureAlgorithmSpi(algorithmURI);
+ signatureAlgorithm.engineGetContextFromElement(this.constructionElement);
+
+ signatureAlgorithm.engineSetHMACOutputLength(HMACOutputLength);
+ ((IntegrityHmac)signatureAlgorithm).engineAddContextToElement(constructionElement);
}
/**
@@ -171,9 +97,37 @@ public class SignatureAlgorithm extends
*/
public SignatureAlgorithm(Element element, String BaseURI) throws XMLSecurityException {
super(element, BaseURI);
- algorithmURI = this.getURI();
+ algorithmURI = this.getURI();
+
+ signatureAlgorithm = getSignatureAlgorithmSpi(algorithmURI);
+ signatureAlgorithm.engineGetContextFromElement(this.constructionElement);
+ }
+
+ /**
+ * Get a SignatureAlgorithmSpi object corresponding to the algorithmURI argument
+ */
+ private static SignatureAlgorithmSpi getSignatureAlgorithmSpi(String algorithmURI)
+ throws XMLSignatureException {
+ try {
+ Class<SignatureAlgorithmSpi> implementingClass = algorithmHash.get(algorithmURI);
+ if (log.isDebugEnabled()) {
+ log.debug("Create URI \"" + algorithmURI + "\" class \""
+ + implementingClass + "\"");
+ }
+ return implementingClass.newInstance();
+ } catch (IllegalAccessException ex) {
+ Object exArgs[] = { algorithmURI, ex.getMessage() };
+ throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
+ } catch (InstantiationException ex) {
+ Object exArgs[] = { algorithmURI, ex.getMessage() };
+ throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
+ } catch (NullPointerException ex) {
+ Object exArgs[] = { algorithmURI, ex.getMessage() };
+ throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
+ }
}
+
/**
* Proxy method for {@link java.security.Signature#sign()}
* which is executed on the internal {@link java.security.Signature} object.
@@ -182,7 +136,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public byte[] sign() throws XMLSignatureException {
- return this.signatureAlgorithm.engineSign();
+ return signatureAlgorithm.engineSign();
}
/**
@@ -192,12 +146,7 @@ public class SignatureAlgorithm extends
* @return the result of the {@link java.security.Signature#getAlgorithm} method
*/
public String getJCEAlgorithmString() {
- try {
- return getInstanceForVerify(algorithmURI).engineGetJCEAlgorithmString();
- } catch (XMLSignatureException e) {
- //Ignore.
- return null;
- }
+ return signatureAlgorithm.engineGetJCEAlgorithmString();
}
/**
@@ -206,11 +155,7 @@ public class SignatureAlgorithm extends
* @return The Provider of this Signature Algorithm
*/
public String getJCEProviderName() {
- try {
- return getInstanceForVerify(algorithmURI).engineGetJCEProviderName();
- } catch (XMLSignatureException e) {
- return null;
- }
+ return signatureAlgorithm.engineGetJCEProviderName();
}
/**
@@ -221,7 +166,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void update(byte[] input) throws XMLSignatureException {
- this.signatureAlgorithm.engineUpdate(input);
+ signatureAlgorithm.engineUpdate(input);
}
/**
@@ -232,7 +177,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void update(byte input) throws XMLSignatureException {
- this.signatureAlgorithm.engineUpdate(input);
+ signatureAlgorithm.engineUpdate(input);
}
/**
@@ -245,7 +190,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void update(byte buf[], int offset, int len) throws XMLSignatureException {
- this.signatureAlgorithm.engineUpdate(buf, offset, len);
+ signatureAlgorithm.engineUpdate(buf, offset, len);
}
/**
@@ -256,13 +201,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void initSign(Key signingKey) throws XMLSignatureException {
- initializeAlgorithm(true);
- Map<String, Key> map = keysSigning.get();
- if (map.get(this.algorithmURI) == signingKey) {
- return;
- }
- map.put(this.algorithmURI, signingKey);
- this.signatureAlgorithm.engineInitSign(signingKey);
+ signatureAlgorithm.engineInitSign(signingKey);
}
/**
@@ -275,8 +214,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void initSign(Key signingKey, SecureRandom secureRandom) throws XMLSignatureException {
- initializeAlgorithm(true);
- this.signatureAlgorithm.engineInitSign(signingKey, secureRandom);
+ signatureAlgorithm.engineInitSign(signingKey, secureRandom);
}
/**
@@ -290,8 +228,7 @@ public class SignatureAlgorithm extends
public void initSign(
Key signingKey, AlgorithmParameterSpec algorithmParameterSpec
) throws XMLSignatureException {
- initializeAlgorithm(true);
- this.signatureAlgorithm.engineInitSign(signingKey, algorithmParameterSpec);
+ signatureAlgorithm.engineInitSign(signingKey, algorithmParameterSpec);
}
/**
@@ -303,7 +240,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void setParameter(AlgorithmParameterSpec params) throws XMLSignatureException {
- this.signatureAlgorithm.engineSetParameter(params);
+ signatureAlgorithm.engineSetParameter(params);
}
/**
@@ -314,32 +251,10 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public void initVerify(Key verificationKey) throws XMLSignatureException {
- initializeAlgorithm(false);
- Map<String, Key> map = keysVerify.get();
- if (map.get(this.algorithmURI) == verificationKey) {
- return;
- }
- map.put(this.algorithmURI, verificationKey);
- this.signatureAlgorithm.engineInitVerify(verificationKey);
+ signatureAlgorithm.engineInitVerify(verificationKey);
}
/**
- * Clear the verification caches keysVerify and instancesVerify.
- */
- public void clearVerificationCache() {
- keysVerify.get().clear();
- instancesVerify.get().clear();
- }
-
- /**
- * Clear the signature caches keysSigning and instancesSigning.
- */
- public void clearSignatureCache() {
- keysSigning.get().clear();
- instancesSigning.get().clear();
- }
-
- /**
* Proxy method for {@link java.security.Signature#verify(byte[])}
* which is executed on the internal {@link java.security.Signature} object.
*
@@ -349,7 +264,7 @@ public class SignatureAlgorithm extends
* @throws XMLSignatureException
*/
public boolean verify(byte[] signature) throws XMLSignatureException {
- return this.signatureAlgorithm.engineVerify(signature);
+ return signatureAlgorithm.engineVerify(signature);
}
/**
@@ -358,7 +273,7 @@ public class SignatureAlgorithm extends
* @return the URI representation of Transformation algorithm
*/
public final String getURI() {
- return this.constructionElement.getAttributeNS(null, Constants._ATT_ALGORITHM);
+ return constructionElement.getAttributeNS(null, Constants._ATT_ALGORITHM);
}
/**
@@ -370,6 +285,7 @@ public class SignatureAlgorithm extends
* @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered
* @throws XMLSignatureException
*/
+ @SuppressWarnings("unchecked")
public static void register(String algorithmURI, String implementingClass)
throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
XMLSignatureException {
@@ -378,39 +294,49 @@ public class SignatureAlgorithm extends
}
// are we already registered?
- Class<?> registeredClassClass =
- SignatureAlgorithm.getImplementingClass(algorithmURI);
- if (registeredClassClass != null) {
- String registeredClass = registeredClassClass.getName();
-
- if ((registeredClass != null) && (registeredClass.length() != 0)) {
- Object exArgs[] = { algorithmURI, registeredClass };
- throw new AlgorithmAlreadyRegisteredException(
- "algorithm.alreadyRegistered", exArgs
- );
- }
+ Class<SignatureAlgorithmSpi> registeredClass = algorithmHash.get(algorithmURI);
+ if (registeredClass != null) {
+ Object exArgs[] = { algorithmURI, registeredClass };
+ throw new AlgorithmAlreadyRegisteredException(
+ "algorithm.alreadyRegistered", exArgs
+ );
}
try {
- Class<?> clazz = Class.forName(implementingClass);
+ Class<SignatureAlgorithmSpi> clazz =
+ (Class<SignatureAlgorithmSpi>)
+ ClassLoaderUtils.loadClass(implementingClass, SignatureAlgorithm.class);
algorithmHash.put(algorithmURI, clazz);
} catch (NullPointerException ex) {
Object exArgs[] = { algorithmURI, ex.getMessage() };
throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, ex);
}
}
-
+
/**
- * Method getImplementingClass
+ * Registers implementing class of the Transform algorithm with algorithmURI
*
- * @param URI
- * @return the class that implements the URI
+ * @param algorithmURI algorithmURI URI representation of <code>Transform algorithm</code>.
+ * @param implementingClass <code>implementingClass</code> the implementing class of
+ * {@link SignatureAlgorithmSpi}
+ * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered
+ * @throws XMLSignatureException
*/
- private static Class<?> getImplementingClass(String URI) {
- if (SignatureAlgorithm.algorithmHash == null) {
- return null;
+ public static void register(String algorithmURI, Class<SignatureAlgorithmSpi> implementingClass)
+ throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
+ XMLSignatureException {
+ if (log.isDebugEnabled()) {
+ log.debug("Try to register " + algorithmURI + " " + implementingClass);
}
- return SignatureAlgorithm.algorithmHash.get(URI);
+ // are we already registered?
+ Class<SignatureAlgorithmSpi> registeredClass = algorithmHash.get(algorithmURI);
+ if (registeredClass != null) {
+ Object exArgs[] = { algorithmURI, registeredClass };
+ throw new AlgorithmAlreadyRegisteredException(
+ "algorithm.alreadyRegistered", exArgs
+ );
+ }
+ algorithmHash.put(algorithmURI, implementingClass);
}
/**
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java Thu Apr 14 16:07:31 2011
@@ -46,7 +46,7 @@ public abstract class IntegrityHmac exte
private Mac macAlgorithm = null;
/** Field HMACOutputLength */
- int HMACOutputLength = 0;
+ private int HMACOutputLength = 0;
private boolean HMACOutputLengthSet = false;
/**
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java Thu Apr 14 16:07:31 2011
@@ -545,10 +545,8 @@ public final class XMLSignature extends
so.close();
} catch (IOException ex) {
- // Impossible...but clear the signature cache anyway
- sa.clearSignatureCache();
+ // Impossible...
} catch (XMLSecurityException ex) {
- sa.clearSignatureCache();
throw ex;
}
@@ -652,10 +650,8 @@ public final class XMLSignature extends
// retrieve the byte[] from the stored signature
sigBytes = this.getSignatureValue();
} catch (IOException ex) {
- // Impossible...but clear the verification cache anyway
- sa.clearVerificationCache();
+ // Impossible...
} catch (XMLSecurityException ex) {
- sa.clearVerificationCache();
throw ex;
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java Thu Apr 14 16:07:31 2011
@@ -60,7 +60,7 @@ public final class Transform extends Sig
private static Map<String, Class<TransformSpi>> transformSpiHash =
new ConcurrentHashMap<String, Class<TransformSpi>>();
- private TransformSpi transformSpi;
+ private final TransformSpi transformSpi;
/**
* Generates a Transform object that implements the specified
@@ -102,7 +102,7 @@ public final class Transform extends Sig
XMLUtils.addReturnToElement(doc, contextNodes);
}
- initializeTransform(doc, algorithmURI, contextNodes);
+ transformSpi = initializeTransform(doc, algorithmURI, contextNodes);
}
/**
@@ -119,7 +119,7 @@ public final class Transform extends Sig
public Transform(Document doc, String algorithmURI, NodeList contextNodes)
throws InvalidTransformException {
super(doc);
- initializeTransform(doc, algorithmURI, contextNodes);
+ transformSpi = initializeTransform(doc, algorithmURI, contextNodes);
}
/**
@@ -278,7 +278,7 @@ public final class Transform extends Sig
/**
* Initialize the transform object.
*/
- private void initializeTransform(Document doc, String algorithmURI, NodeList contextNodes)
+ private TransformSpi initializeTransform(Document doc, String algorithmURI, NodeList contextNodes)
throws InvalidTransformException {
this.constructionElement.setAttributeNS(null, Constants._ATT_ALGORITHM, algorithmURI);
@@ -288,8 +288,9 @@ public final class Transform extends Sig
Object exArgs[] = { algorithmURI };
throw new InvalidTransformException("signature.Transform.UnknownTransform", exArgs);
}
+ TransformSpi newTransformSpi = null;
try {
- transformSpi = transformSpiClass.newInstance();
+ newTransformSpi = transformSpiClass.newInstance();
} catch (InstantiationException ex) {
Object exArgs[] = { algorithmURI };
throw new InvalidTransformException(
@@ -304,7 +305,7 @@ public final class Transform extends Sig
if (log.isDebugEnabled()) {
log.debug("Create URI \"" + algorithmURI + "\" class \""
- + transformSpi.getClass() + "\"");
+ + newTransformSpi.getClass() + "\"");
log.debug("The NodeList is " + contextNodes);
}
@@ -314,6 +315,7 @@ public final class Transform extends Sig
this.constructionElement.appendChild(contextNodes.item(i).cloneNode(true));
}
}
+ return newTransformSpi;
}
}
Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/KeyValueTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/KeyValueTest.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/KeyValueTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/KeyValueTest.java Thu Apr 14 16:07:31 2011
@@ -26,6 +26,7 @@ import javax.xml.parsers.DocumentBuilder
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import org.apache.xml.security.Init;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.keys.content.KeyValue;
import org.apache.xml.security.signature.XMLSignature;
@@ -37,6 +38,10 @@ public class KeyValueTest extends org.ju
private static final String SEP = System.getProperty("file.separator");
private DocumentBuilder db;
+
+ static {
+ Init.init();
+ }
public KeyValueTest() throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/NoKeyInfoTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/NoKeyInfoTest.java?rev=1092372&r1=1092371&r2=1092372&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/NoKeyInfoTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/signature/NoKeyInfoTest.java Thu Apr 14 16:07:31 2011
@@ -25,6 +25,7 @@ import javax.xml.parsers.DocumentBuilder
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import org.apache.xml.security.Init;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.utils.Constants;
@@ -33,6 +34,10 @@ public class NoKeyInfoTest extends org.j
private static final String BASEDIR = System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
+
+ static {
+ Init.init();
+ }
private DocumentBuilder db;