Author: hadrian Date: Wed Jun 8 21:36:49 2011 New Revision: 1133563 URL: http://svn.apache.org/viewvc?rev=1133563&view=rev Log: CAMEL-4061. Part 1/2. Patch applied with thanks to Rich
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java?rev=1133563&r1=1133562&r2=1133563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java Wed Jun 8 21:36:49 2011 @@ -356,7 +356,15 @@ public class DataFormatClause<T extends XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, passPhrase, xmlCipherAlgorithm); return dataFormat(xsdf); } - + + /** + * Uses the XML Security data format + */ + public T secureXML(String secureTag, boolean secureTagContents, String recipientKeyAlias, String xmlCipherAlgorithm, String keyCipherAlgorithm) { + XMLSecurityDataFormat xsdf = new XMLSecurityDataFormat(secureTag, secureTagContents, recipientKeyAlias, xmlCipherAlgorithm, keyCipherAlgorithm); + return dataFormat(xsdf); + } + /** * Uses the xmlBeans data format */ Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java?rev=1133563&r1=1133562&r2=1133563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java Wed Jun 8 21:36:49 2011 @@ -41,6 +41,11 @@ public class XMLSecurityDataFormat exten private String secureTag; @XmlAttribute private Boolean secureTagContents; + @XmlAttribute + private String keyCipherAlgorithm; + @XmlAttribute + private String recipientKeyAlias; + public XMLSecurityDataFormat() { super("secureXML"); @@ -61,11 +66,21 @@ public class XMLSecurityDataFormat exten public XMLSecurityDataFormat(String secureTag, boolean secureTagContents, String passPhrase, String xmlCipherAlgorithm) { - this(); + this(); this.setSecureTag(secureTag); this.setSecureTagContents(secureTagContents); - this.setPassPhrase(passPhrase); this.setXmlCipherAlgorithm(xmlCipherAlgorithm); + this.setKeyCipherAlgorithm(keyCipherAlgorithm); + } + + public XMLSecurityDataFormat(String secureTag, boolean secureTagContents, String recipientKeyAlias, + String xmlCipherAlgorithm, String keyCipherAlgorithm) { + this(); + this.setSecureTag(secureTag); + this.setSecureTagContents(secureTagContents); + this.setRecipientKeyAlias(recipientKeyAlias); + this.setXmlCipherAlgorithm(xmlCipherAlgorithm); + this.setKeyCipherAlgorithm(keyCipherAlgorithm); } @Override @@ -79,7 +94,7 @@ public class XMLSecurityDataFormat exten setProperty(dataFormat, "secureTagContents", isSecureTagContents()); if (passPhrase != null) { - setProperty(dataFormat, "passPhrase", getPassPhrase()); + setProperty(dataFormat, "passPhrase", getPassPhrase().getBytes()); } else { setProperty(dataFormat, "passPhrase", "Just another 24 Byte key".getBytes()); } @@ -88,6 +103,12 @@ public class XMLSecurityDataFormat exten } else { setProperty(dataFormat, "xmlCipherAlgorithm", TRIPLEDES); } + if(getKeyCipherAlgorithm() != null) { + setProperty(dataFormat, "keyCipherAlgorithm", getKeyCipherAlgorithm()); + } + if(getRecipientKeyAlias() != null) { + setProperty(dataFormat, "recipientKeyAlias", getRecipientKeyAlias()); + } } public String getXmlCipherAlgorithm() { @@ -125,4 +146,20 @@ public class XMLSecurityDataFormat exten public boolean isSecureTagContents() { return secureTagContents != null && secureTagContents; } + + public void setKeyCipherAlgorithm(String keyCipherAlgorithm) { + this.keyCipherAlgorithm = keyCipherAlgorithm; + } + + public String getKeyCipherAlgorithm() { + return keyCipherAlgorithm; + } + + public void setRecipientKeyAlias(String recipientKeyAlias) { + this.recipientKeyAlias = recipientKeyAlias; + } + + public String getRecipientKeyAlias() { + return recipientKeyAlias; + } }