Author: dkulp
Date: Wed Mar  4 20:29:30 2009
New Revision: 750142

URL: http://svn.apache.org/viewvc?rev=750142&view=rev
Log:
Add a comment about the new token ID
Add ability to explicitely set which X509 cert to use

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

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java?rev=750142&r1=750141&r2=750142&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java 
(original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java Wed Mar 
 4 20:29:30 2009
@@ -394,6 +394,12 @@
      */
     public static final int CUSTOM_SYMM_SIGNING_DIRECT = 11;
     
+    /**
+     * <code>CUSTOM_KEY_IDENTIFIER</code> is used to set a KeyIdentifier to
+     * a particular ID
+     * 
+     * The reference id and value type are set externally. 
+     */
     public static final int CUSTOM_KEY_IDENTIFIER = 12;
     
     /**

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=750142&r1=750141&r2=750142&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 
Wed Mar  4 20:29:30 2009
@@ -119,6 +119,7 @@
     
     private String digestAlgo = "http://www.w3.org/2000/09/xmldsig#sha1";;
     
+    private X509Certificate useThisCert = null;
     /**
      * Constructor.
      */
@@ -301,7 +302,11 @@
             && keyIdentifierType != WSConstants.CUSTOM_SYMM_SIGNING_DIRECT
             && keyIdentifierType != WSConstants.ENCRYPTED_KEY_SHA1_IDENTIFIER
             && keyIdentifierType != WSConstants.CUSTOM_KEY_IDENTIFIER) {
-            certs = crypto.getCertificates(user);
+            if (useThisCert == null) {
+                certs = crypto.getCertificates(user);
+            } else {
+                certs = new X509Certificate[] {useThisCert};
+            }
             if (certs == null || certs.length <= 0) {
                 throw new WSSecurityException(
                     WSSecurityException.FAILURE,
@@ -693,7 +698,11 @@
                     keyIdentifierType == 
WSConstants.CUSTOM_SYMM_SIGNING_DIRECT ||
                     keyIdentifierType == WSConstants.CUSTOM_KEY_IDENTIFIER || 
                     keyIdentifierType == 
WSConstants.ENCRYPTED_KEY_SHA1_IDENTIFIER) {
-                sig.sign(sig.createSecretKey(secretKey));
+                if (secretKey == null) {
+                    sig.sign(crypto.getPrivateKey(user, password));
+                } else {
+                    sig.sign(sig.createSecretKey(secretKey));                  
  
+                }
             } else {
                 sig.sign(crypto.getPrivateKey(user, password));
             }
@@ -862,5 +871,8 @@
     public void setEncrKeySha1value(String encrKeySha1value) {
         this.encrKeySha1value = encrKeySha1value;
     }
+    public void setX509Certificate(X509Certificate cer) {
+        this.useThisCert = cer;
+    }
     
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to