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 ru...@apache.org on 2007/11/09 09:49:05 UTC

svn commit: r593455 - in /webservices/wss4j/trunk/src/org/apache/ws/security: WSConstants.java message/WSSecEncrypt.java message/WSSecEncryptedKey.java message/token/SecurityTokenReference.java

Author: ruchithf
Date: Fri Nov  9 00:49:03 2007
New Revision: 593455

URL: http://svn.apache.org/viewvc?rev=593455&view=rev
Log:
A security context token can be used to encrypt/sign a msg ... made sure we support that.


Modified:
    webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncrypt.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.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=593455&r1=593454&r2=593455&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java Fri Nov  9 00:49:03 2007
@@ -414,5 +414,7 @@
      * WS-Trust namespace
      */
     public static final String WST_NS = "http://schemas.xmlsoap.org/ws/2005/02/trust";
-
+    
+    public final static String WSC_SCT = "http://schemas.xmlsoap.org/ws/2005/02/sc/sct";
+    
 }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncrypt.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncrypt.java?rev=593455&r1=593454&r2=593455&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncrypt.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncrypt.java Fri Nov  9 00:49:03 2007
@@ -83,6 +83,11 @@
      * or not.
      */
     private boolean encryptSymmKey = true;
+    
+    /**
+     * Custom reference value
+     */
+    private String customReferenceValue;
 
     /**
      * Constructor.
@@ -434,10 +439,14 @@
     	// Prepare KeyInfo if useKeyIdentifier is set
     	if ( useKeyIdentifier && 
     			 keyIdentifierType == WSConstants.ENCRYPTED_KEY_SHA1_IDENTIFIER) {
-            
     		keyInfo = new KeyInfo(document);
             SecurityTokenReference secToken = new SecurityTokenReference(document);
-            secToken.setKeyIdentifierEncKeySHA1(getSHA1(encryptedEphemeralKey));
+            if(this.customReferenceValue != null) {
+                secToken.setKeyIdentifierEncKeySHA1(this.customReferenceValue);
+            } else {
+                secToken.setKeyIdentifierEncKeySHA1(getSHA1(encryptedEphemeralKey));
+            }
+            
 
             keyInfo.addUnknownElement(secToken.getElement());
     	} 
@@ -492,14 +501,14 @@
             boolean content = modifier.equals("Content") ? true : false;
             String xencEncryptedDataId = "EncDataId-" + body.hashCode();
 
+            cloneKeyInfo = true;
+            
             if(keyInfo == null) {
-                cloneKeyInfo = true;
                 keyInfo = new KeyInfo(document);
                 SecurityTokenReference secToken = new SecurityTokenReference(document);
                 Reference ref = new Reference(document);
                 ref.setURI("#" + encKeyId);
                 secToken.setReference(ref);
-    
                 keyInfo.addUnknownElement(secToken.getElement());
             }
             /*
@@ -542,7 +551,8 @@
                     xmlCipher.doFinal(doc, body, content);    		
             	}
                 if(cloneKeyInfo) {
-                    keyInfo = null;
+                    keyInfo = new KeyInfo((Element) keyInfo.getElement()
+                            .cloneNode(true), null);
                 }
             } catch (Exception e2) {
                 throw new WSSecurityException(
@@ -735,6 +745,10 @@
             throw new WSSecurityException(
                     WSSecurityException.UNSUPPORTED_ALGORITHM, null, null, e);
         }
+    }
+
+    public void setCustomReferenceValue(String customReferenceValue) {
+        this.customReferenceValue = customReferenceValue;
     }
     
 }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java?rev=593455&r1=593454&r2=593455&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java Fri Nov  9 00:49:03 2007
@@ -505,5 +505,4 @@
         return encryptedEphemeralKey;
     }
     
-    
 }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java?rev=593455&r1=593454&r2=593455&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java Fri Nov  9 00:49:03 2007
@@ -162,7 +162,10 @@
         Element tokElement = null;
         String tmpS = WSConstants.WSS_SAML_NS + WSConstants.WSS_SAML_ASSERTION;
         String saml10 = WSConstants.WSS_SAML_NS + WSConstants.SAML_ASSERTION_ID;
-        if (tmpS.equals(ref.getValueType()) || saml10.equals(ref.getValueType())) {
+        
+        if (tmpS.equals(ref.getValueType())
+                || saml10.equals(ref.getValueType())
+                || WSConstants.WSC_SCT.equals(ref.getValueType())) {
             Element sa = docInfo.getAssertion();
             String saID = null;
             if (sa != null) {



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