...
Option | Default | Description |
---|---|---|
|
| The XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted. |
|
| A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element
|
|
| A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using |
|
| The cipher algorithm to be used for encryption/decryption of the XML message content. The available choices are:
|
|
| A map of namespace values indexed by prefix. The index values must match the prefixes used in the |
...
Full Payload encryption/decryption
Code Block |
---|
from("direct:start")
.marshal().secureXML()
.unmarshal().secureXML()
.to("direct:end");
|
Partial Payload Content Only encryption/decryption
Code Block |
---|
String tagXPATH = "//cheesesites/italy/cheese";
boolean secureTagContent = true;
...
from("direct:start")
.marshal().secureXML(tagXPATH, secureTagContent)
.unmarshal().secureXML(tagXPATH, secureTagContent)
.to("direct:end");
|
Partial Multi Node Payload Content Only encryption/decryption
Code Block |
---|
String tagXPATH = "//cheesesites/*/cheese";
boolean secureTagContent = true;
...
from("direct:start")
.marshal().secureXML(tagXPATH, secureTagContent)
.unmarshal().secureXML(tagXPATH, secureTagContent)
.to("direct:end");
|
Partial Payload Content Only encryption/decryption with choice of passPhrase(password)
Code Block |
---|
String tagXPATH = "//cheesesites/italy/cheese";
boolean secureTagContent = true;
...
String passPhrase = "Just another 24 Byte key";
from("direct:start")
.marshal().secureXML(tagXPATH, secureTagContent, passPhrase)
.unmarshal().secureXML(tagXPATH, secureTagContent, passPhrase)
.to("direct:end");
|
Partial Payload Content Only encryption/decryption with passPhrase(password) and Algorithm
Code Block |
---|
import org.apache.xml.security.encryption.XMLCipher;
....
String tagXPATH = "//cheesesites/italy/cheese";
boolean secureTagContent = true;
String passPhrase = "Just another 24 Byte key";
String algorithm= XMLCipher.TRIPLEDES;
from("direct:start")
.marshal().secureXML(tagXPATH, secureTagContent, passPhrase, algorithm)
.unmarshal().secureXML(tagXPATH, secureTagContent, passPhrase, algorithm)
.to("direct:end");
|
Partial Payload Content with Namespace support
Java DSL
Code Block |
---|
final Map<String, String> namespaces = new HashMap<String, String>();
namespaces.put("cust", "http://cheese.xmlsecurity.camel.apache.org/");
final KeyStoreParameters tsParameters = new KeyStoreParameters();
tsParameters.setPassword("password");
tsParameters.setResource("sender.ts");
context.addRoutes(new RouteBuilder() {
public void configure() {
from("direct:start")
.marshal().secureXML("//cust:cheesesites/italy", namespaces, true, "recipient",
testCypherAlgorithm, XMLCipher.RSA_v1dot5, tsParameters)
.to("mock:encrypted");
}
}
|
...
A namespace prefix that is defined as part of the camelContext
definition can be re-used in context within the data format secureTag
attribute of the secureXML
element.
Code Block | ||||
---|---|---|---|---|
| ||||
<camelContext id="springXmlSecurityDataFormatTestCamelContext"
xmlns="http://camel.apache.org/schema/spring"
xmlns:cheese="http://cheese.xmlsecurity.camel.apache.org/">
<route>
<from uri="direct://start"/>
<marshal>
<secureXML secureTag="//cheese:cheesesites/italy"
secureTagContents="true"/>
</marshal>
...
|
...
Spring XML Sender
Code Block | ||||
---|---|---|---|---|
| ||||
<!-- trust store configuration -->
<camel:keyStoreParameters id="trustStoreParams" resource="./sender.ts" password="password"/>
<camelContext id="springXmlSecurityDataFormatTestCamelContext"
xmlns="http://camel.apache.org/schema/spring"
xmlns:cheese="http://cheese.xmlsecurity.camel.apache.org/">
<route>
<from uri="direct://start"/>
<marshal>
<secureXML secureTag="//cheese:cheesesites/italy"
secureTagContents="true"
xmlCipherAlgorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"
keyCipherAlgorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"
recipientKeyAlias="recipient"
keyOrTrustStoreParametersId="trustStoreParams"/>
</marshal>
...
|
...