Repository: camel Updated Branches: refs/heads/master f9429f632 -> 88338627a
CAMEL-5857: Add server side enrycption algorithm option to s3 producer. Thanks to Scott LePage for the patch. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/88338627 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/88338627 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/88338627 Branch: refs/heads/master Commit: 88338627aaddb38369ad54a667deb10fdf6bc71d Parents: f9429f6 Author: Claus Ibsen <davscl...@apache.org> Authored: Sat Jul 11 15:38:13 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat Jul 11 15:38:13 2015 +0200 ---------------------------------------------------------------------- .../camel/component/aws/s3/S3Configuration.java | 14 ++++++++++++++ .../apache/camel/component/aws/s3/S3Constants.java | 1 + .../org/apache/camel/component/aws/s3/S3Endpoint.java | 1 + .../org/apache/camel/component/aws/s3/S3Producer.java | 5 +++++ 4 files changed, 21 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java index 5a6af23..5bc2ac0 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java @@ -53,6 +53,8 @@ public class S3Configuration implements Cloneable { private String policy; @UriParam(label = "producer") private String storageClass; + @UriParam(label = "producer") + private String serverSideEncryption; public long getPartSize() { return partSize; @@ -207,4 +209,16 @@ public class S3Configuration implements Cloneable { public void setStorageClass(String storageClass) { this.storageClass = storageClass; } + + public String getServerSideEncryption() { + return serverSideEncryption; + } + + /** + * Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. + * For example use <tt>AES256</tt>. + */ + public void setServerSideEncryption(String serverSideEncryption) { + this.serverSideEncryption = serverSideEncryption; + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java index f007313..8bd783f 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java @@ -38,4 +38,5 @@ public interface S3Constants { String ACL = "CamelAwsS3Acl"; String USER_METADATA = "CamelAwsS3UserMetadata"; String S3_HEADERS = "CamelAwsS3Headers"; + String SERVER_SIDE_ENCRYPTION = "CamelAwsS3ServerSideEncryption"; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java index 69a7942..f772ee4 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java @@ -163,6 +163,7 @@ public class S3Endpoint extends ScheduledPollEndpoint { message.setHeader(S3Constants.CONTENT_DISPOSITION, objectMetadata.getContentDisposition()); message.setHeader(S3Constants.CACHE_CONTROL, objectMetadata.getCacheControl()); message.setHeader(S3Constants.S3_HEADERS, objectMetadata.getRawMetadata()); + message.setHeader(S3Constants.SERVER_SIDE_ENCRYPTION, objectMetadata.getSSEAlgorithm()); return exchange; } http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java index 20125fd..8097525 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java @@ -272,6 +272,11 @@ public class S3Producer extends DefaultProducer { } } + String encryption = exchange.getIn().getHeader(S3Constants.SERVER_SIDE_ENCRYPTION, getConfiguration().getServerSideEncryption(), String.class); + if (encryption != null) { + objectMetadata.setSSEAlgorithm(encryption); + } + return objectMetadata; }