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 2011/09/15 13:08:51 UTC
svn commit: r1171055 - in /webservices/wss4j/trunk: ./
src/main/java/org/apache/ws/security/components/crypto/
src/test/java/org/apache/ws/security/message/ src/test/resources/
src/test/resources/keys/
Author: coheigea
Date: Thu Sep 15 11:08:51 2011
New Revision: 1171055
URL: http://svn.apache.org/viewvc?rev=1171055&view=rev
Log:
[WSS-314] - Added a "org.apache.ws.security.crypto.merlin.keystore.private.password" property for this.
Added:
webservices/wss4j/trunk/src/test/resources/alice.properties
webservices/wss4j/trunk/src/test/resources/keys/alice.p12
Modified:
webservices/wss4j/trunk/pom.xml
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/components/crypto/Merlin.java
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java
Modified: webservices/wss4j/trunk/pom.xml
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/pom.xml?rev=1171055&r1=1171054&r2=1171055&view=diff
==============================================================================
--- webservices/wss4j/trunk/pom.xml (original)
+++ webservices/wss4j/trunk/pom.xml Thu Sep 15 11:08:51 2011
@@ -431,6 +431,10 @@
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </exclusion>
+ <exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/components/crypto/Merlin.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/components/crypto/Merlin.java?rev=1171055&r1=1171054&r2=1171055&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/components/crypto/Merlin.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/components/crypto/Merlin.java Thu Sep 15 11:08:51 2011
@@ -93,6 +93,8 @@ public class Merlin extends CryptoBase {
"org.apache.ws.security.crypto.merlin.keystore.type";
public static final String KEYSTORE_ALIAS =
"org.apache.ws.security.crypto.merlin.keystore.alias";
+ public static final String KEYSTORE_PRIVATE_PASSWORD =
+ "org.apache.ws.security.crypto.merlin.keystore.private.password";
/*
* TrustStore configuration types
@@ -122,6 +124,7 @@ public class Merlin extends CryptoBase {
protected KeyStore truststore = null;
protected CertStore crlCertStore = null;
protected boolean loadCACerts = false;
+ protected boolean privatePasswordSet = false;
public Merlin() {
// default constructor
@@ -191,6 +194,10 @@ public class Merlin extends CryptoBase {
+ " has been loaded"
);
}
+ String privatePasswd = properties.getProperty(KEYSTORE_PRIVATE_PASSWORD);
+ if (privatePasswd != null) {
+ privatePasswordSet = true;
+ }
} finally {
if (is != null) {
is.close();
@@ -644,6 +651,12 @@ public class Merlin extends CryptoBase {
throw new WSSecurityException(msg);
}
String password = getPassword(identifier, callbackHandler);
+ if (password == null && privatePasswordSet) {
+ password = properties.getProperty(KEYSTORE_PRIVATE_PASSWORD);
+ if (password != null) {
+ password = password.trim();
+ }
+ }
Key keyTmp = keystore.getKey(identifier, password == null
? new char[]{} : password.toCharArray());
if (!(keyTmp instanceof PrivateKey)) {
@@ -689,6 +702,12 @@ public class Merlin extends CryptoBase {
log.error(msg + logMsg);
throw new WSSecurityException(msg);
}
+ if (password == null && privatePasswordSet) {
+ password = properties.getProperty(KEYSTORE_PRIVATE_PASSWORD);
+ if (password != null) {
+ password = password.trim();
+ }
+ }
Key keyTmp = keystore.getKey(identifier, password == null
? new char[]{} : password.toCharArray());
if (!(keyTmp instanceof PrivateKey)) {
Modified: webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java?rev=1171055&r1=1171054&r2=1171055&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java (original)
+++ webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SignatureTest.java Thu Sep 15 11:08:51 2011
@@ -616,6 +616,36 @@ public class SignatureTest extends org.j
LOG.debug(outputString);
}
}
+
+ /**
+ * The test uses the Issuer Serial key identifier type.
+ * <p/>
+ *
+ * @throws java.lang.Exception Thrown when there is any problem in signing or verification
+ */
+ @org.junit.Test
+ public void testX509SignatureDefaultPassword() throws Exception {
+ Crypto passwordCrypto = CryptoFactory.getInstance("alice.properties");
+
+ WSSecSignature builder = new WSSecSignature();
+ builder.setUserInfo(passwordCrypto.getDefaultX509Identifier(), null);
+ builder.setKeyIdentifierType(WSConstants.ISSUER_SERIAL);
+ LOG.info("Before Signing IS....");
+ Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+ WSSecHeader secHeader = new WSSecHeader();
+ secHeader.insertSecurityHeader(doc);
+ Document signedDoc = builder.build(doc, passwordCrypto, secHeader);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Signed message with IssuerSerial key identifier:");
+ String outputString =
+ org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
+ LOG.debug(outputString);
+ }
+ LOG.info("After Signing IS....");
+ WSSecurityEngine newEngine = new WSSecurityEngine();
+ newEngine.processSecurityHeader(doc, null, null, passwordCrypto);
+ }
/**
* Verifies the soap envelope.
Added: webservices/wss4j/trunk/src/test/resources/alice.properties
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/resources/alice.properties?rev=1171055&view=auto
==============================================================================
--- webservices/wss4j/trunk/src/test/resources/alice.properties (added)
+++ webservices/wss4j/trunk/src/test/resources/alice.properties Thu Sep 15 11:08:51 2011
@@ -0,0 +1,5 @@
+org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
+org.apache.ws.security.crypto.merlin.keystore.type=pkcs12
+org.apache.ws.security.crypto.merlin.keystore.password=password
+org.apache.ws.security.crypto.merlin.keystore.alias=alice
+org.apache.ws.security.crypto.merlin.keystore.file=keys/alice.p12
Added: webservices/wss4j/trunk/src/test/resources/keys/alice.p12
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/resources/keys/alice.p12?rev=1171055&view=auto
==============================================================================
Files webservices/wss4j/trunk/src/test/resources/keys/alice.p12 (added) and webservices/wss4j/trunk/src/test/resources/keys/alice.p12 Thu Sep 15 11:08:51 2011 differ