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