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 dk...@apache.org on 2009/02/24 22:57:10 UTC
svn commit: r747563 - in
/webservices/wss4j/trunk/src/org/apache/ws/security: WSConstants.java
message/WSSecEncrypt.java message/WSSecSignature.java
Author: dkulp
Date: Tue Feb 24 21:57:09 2009
New Revision: 747563
URL: http://svn.apache.org/viewvc?rev=747563&view=rev
Log:
[WSS-163, WSS-164] Add some flags/apis to enable creating refs to keys by direct identifier and set value type on encryption key refs
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/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=747563&r1=747562&r2=747563&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSConstants.java Tue Feb 24 21:57:09 2009
@@ -386,6 +386,14 @@
*/
public static final int ENCRYPTED_KEY_SHA1_IDENTIFIER = 10;
+ /**
+ * <code>CUSTOM_SYMM_SIGNING_DIRECT</code> is used internally only to set a
+ * specific Signature behavior.
+ *
+ * The signing key, reference id and value type are set externally.
+ */
+ public static final int CUSTOM_SYMM_SIGNING_DIRECT = 11;
+
public static final String ENCRYPTED_HEADER = "EncryptedHeader";
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=747563&r1=747562&r2=747563&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 Tue Feb 24 21:57:09 2009
@@ -86,6 +86,16 @@
* Custom reference value
*/
private String customReferenceValue;
+
+ /**
+ * ValueType for the encrypted key reference
+ */
+ private String encKeyValueType;
+
+ /**
+ * True if the encKeyId is a direct reference to a key identifier instead of a URI to a key
+ */
+ private boolean encKeyIdDirectId;
/**
* Constructor.
@@ -513,7 +523,14 @@
keyInfo = new KeyInfo(document);
SecurityTokenReference secToken = new SecurityTokenReference(document);
Reference ref = new Reference(document);
- ref.setURI("#" + encKeyId);
+ if (encKeyIdDirectId) {
+ ref.setURI(encKeyId);
+ } else {
+ ref.setURI("#" + encKeyId);
+ }
+ if (encKeyValueType != null) {
+ ref.setValueType(encKeyValueType);
+ }
secToken.setReference(ref);
keyInfo.addUnknownElement(secToken.getElement());
Element keyInfoElement = keyInfo.getElement();
@@ -770,4 +787,10 @@
this.customReferenceValue = customReferenceValue;
}
+ public void setEncKeyValueType(String e) {
+ encKeyValueType = e;
+ }
+ public void setEncKeyIdDirectId(boolean b) {
+ encKeyIdDirectId = b;
+ }
}
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=747563&r1=747562&r2=747563&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 Tue Feb 24 21:57:09 2009
@@ -309,6 +309,7 @@
X509Certificate[] certs = null;
if (keyIdentifierType != WSConstants.UT_SIGNING
&& keyIdentifierType != WSConstants.CUSTOM_SYMM_SIGNING
+ && keyIdentifierType != WSConstants.CUSTOM_SYMM_SIGNING_DIRECT
&& keyIdentifierType != WSConstants.ENCRYPTED_KEY_SHA1_IDENTIFIER) {
certs = crypto.getCertificates(user);
if (certs == null || certs.length <= 0) {
@@ -454,6 +455,12 @@
refCust.setURI("#" + this.customTokenId);
secRef.setReference(refCust);
break;
+ case WSConstants.CUSTOM_SYMM_SIGNING_DIRECT :
+ Reference refCustd = new Reference(document);
+ refCustd.setValueType(this.customTokenValueType);
+ refCustd.setURI(this.customTokenId);
+ secRef.setReference(refCustd);
+ break;
default:
throw new WSSecurityException(WSSecurityException.FAILURE,
"unsupportedKeyId");
@@ -698,6 +705,7 @@
try {
if (keyIdentifierType == WSConstants.UT_SIGNING ||
keyIdentifierType == WSConstants.CUSTOM_SYMM_SIGNING ||
+ keyIdentifierType == WSConstants.CUSTOM_SYMM_SIGNING_DIRECT ||
keyIdentifierType == WSConstants.ENCRYPTED_KEY_SHA1_IDENTIFIER) {
sig.sign(sig.createSecretKey(secretKey));
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org