You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2014/08/27 12:08:03 UTC
svn commit: r1620847 - in /webservices/wss4j/trunk:
ws-security-common/src/main/java/org/apache/wss4j/common/crypto/
ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/
ws-security-dom/src/test/resources/
Author: coheigea
Date: Wed Aug 27 10:08:03 2014
New Revision: 1620847
URL: http://svn.apache.org/r1620847
Log:
Fixing a bug in loading MerlinDevice
Added:
webservices/wss4j/trunk/ws-security-dom/src/test/resources/crypto_device.properties
Modified:
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/CryptoFactory.java
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/MerlinDevice.java
webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java
Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/CryptoFactory.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/CryptoFactory.java?rev=1620847&r1=1620846&r2=1620847&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/CryptoFactory.java (original)
+++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/CryptoFactory.java Wed Aug 27 10:08:03 2014
@@ -216,9 +216,17 @@ public abstract class CryptoFactory {
LOG.debug("Using Crypto Engine [" + cryptoClass + "]");
}
try {
- Class<?>[] classes = new Class[]{Map.class, ClassLoader.class};
- Constructor<? extends Crypto> c = cryptoClass.getConstructor(classes);
- return c.newInstance(map, loader);
+ Constructor<? extends Crypto> c = null;
+ try {
+ Class<?>[] classes = new Class[]{Map.class, ClassLoader.class};
+ c = cryptoClass.getConstructor(classes);
+ return c.newInstance(map, loader);
+ } catch (NoSuchMethodException ex) {
+ Class<?>[] classes =
+ new Class[]{Properties.class, Map.class, PasswordEncryptor.class};
+ c = cryptoClass.getConstructor(classes);
+ return c.newInstance(map, loader, null);
+ }
} catch (java.lang.Exception e) {
if (LOG.isDebugEnabled()) {
LOG.debug("Unable to instantiate: " + cryptoClass.getName(), e);
@@ -244,9 +252,17 @@ public abstract class CryptoFactory {
LOG.debug("Using Crypto Engine [" + cryptoClass + "]");
}
try {
- Class<?>[] classes = new Class[]{Properties.class, ClassLoader.class};
- Constructor<? extends Crypto> c = cryptoClass.getConstructor(classes);
- return c.newInstance(map, loader);
+ Constructor<? extends Crypto> c = null;
+ try {
+ Class<?>[] classes = new Class[]{Properties.class, ClassLoader.class};
+ c = cryptoClass.getConstructor(classes);
+ return c.newInstance(map, loader);
+ } catch (NoSuchMethodException ex) {
+ Class<?>[] classes =
+ new Class[]{Properties.class, ClassLoader.class, PasswordEncryptor.class};
+ c = cryptoClass.getConstructor(classes);
+ return c.newInstance(map, loader, null);
+ }
} catch (java.lang.Exception e) {
if (LOG.isDebugEnabled()) {
LOG.debug("Unable to instantiate: " + cryptoClass.getName(), e);
Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/MerlinDevice.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/MerlinDevice.java?rev=1620847&r1=1620846&r2=1620847&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/MerlinDevice.java (original)
+++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/crypto/MerlinDevice.java Wed Aug 27 10:08:03 2014
@@ -43,6 +43,14 @@ public class MerlinDevice extends Merlin
org.slf4j.LoggerFactory.getLogger(MerlinDevice.class);
private static final boolean DO_DEBUG = LOG.isDebugEnabled();
+ public MerlinDevice() {
+ super();
+ }
+
+ public MerlinDevice(Properties properties, ClassLoader loader, PasswordEncryptor passwordEncryptor)
+ throws WSSecurityException, IOException {
+ super(properties, loader, passwordEncryptor);
+ }
@Override
public void loadProperties(Properties properties, ClassLoader loader, PasswordEncryptor passwordEncryptor)
Modified: webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java?rev=1620847&r1=1620846&r2=1620847&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java Wed Aug 27 10:08:03 2014
@@ -21,6 +21,7 @@ package org.apache.wss4j.dom.components.
import java.io.InputStream;
import java.security.KeyStore;
+import java.util.Properties;
import org.apache.wss4j.dom.WSConstants;
import org.apache.wss4j.dom.WSSConfig;
@@ -136,6 +137,24 @@ public class CryptoTest extends org.juni
}
}
+ @org.junit.Test
+ public void testCryptoFactoryMerlin() throws Exception {
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ Properties properties = CryptoFactory.getProperties("crypto.properties", classLoader);
+ Crypto crypto =
+ CryptoFactory.getInstance(properties, classLoader, null);
+ assertTrue(crypto instanceof Merlin);
+ }
+
+ @org.junit.Test
+ public void testCryptoFactoryMerlinDevice() throws Exception {
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ Properties properties = CryptoFactory.getProperties("crypto_device.properties", classLoader);
+ Crypto crypto =
+ CryptoFactory.getInstance(properties, classLoader, null);
+ assertTrue(crypto instanceof Merlin);
+ }
+
/**
* WSS-102 -- ensure Merlin will null properties
* can be instantiated
Added: webservices/wss4j/trunk/ws-security-dom/src/test/resources/crypto_device.properties
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/test/resources/crypto_device.properties?rev=1620847&view=auto
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/test/resources/crypto_device.properties (added)
+++ webservices/wss4j/trunk/ws-security-dom/src/test/resources/crypto_device.properties Wed Aug 27 10:08:03 2014
@@ -0,0 +1,5 @@
+org.apache.wss4j.crypto.provider=org.apache.wss4j.common.crypto.MerlinDevice
+org.apache.wss4j.crypto.merlin.keystore.type=pkcs12
+org.apache.wss4j.crypto.merlin.keystore.password=security
+org.apache.wss4j.crypto.merlin.keystore.alias=16c73ab6-b892-458f-abf5-2f875f74882e
+org.apache.wss4j.crypto.merlin.keystore.file=keys/x509.PFX.MSFT