[ 
https://issues.apache.org/jira/browse/BEAM-6292?focusedWorklogId=184754&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-184754
 ]

ASF GitHub Bot logged work on BEAM-6292:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 14/Jan/19 11:02
            Start Date: 14/Jan/19 11:02
    Worklog Time Spent: 10m 
      Work Description: echauchot commented on pull request #7348: [BEAM-6292] 
PasswordDecrypter: Delay decryption / Avoid serialization
URL: https://github.com/apache/beam/pull/7348#discussion_r247445199
 
 

 ##########
 File path: 
sdks/java/io/cassandra/src/main/java/org/apache/beam/sdk/io/cassandra/CassandraServiceImpl.java
 ##########
 @@ -284,12 +287,16 @@ private Cluster getCluster(
       int port,
       String username,
       String password,
+      PasswordDecrypter passwordDecrypter,
       String localDc,
       String consistencyLevel) {
     Cluster.Builder builder =
         Cluster.builder().addContactPoints(hosts.toArray(new 
String[0])).withPort(port);
 
     if (username != null) {
+      if (passwordDecrypter != null) {
+        password = passwordDecrypter.decrypt(password);
 
 Review comment:
   before the `withPassword()` method expected to have a clear password cf 
https://github.com/apache/beam/blob/213f6c9310e18531ab27c303b1de57eb78a5f26a/sdks/java/io/cassandra/src/main/java/org/apache/beam/sdk/io/cassandra/CassandraServiceImpl.java#L293
 Now you expect to have an encrypted password. It is not a breaking change in 
the API because of the  `if (passwordDecrypter != null)`. As we prefer not to 
expose `withPasswordDecrypter() `and rather use a default password decrypter, I 
suggest you add a `withEncryptedPassword` method. We keep the `withPassword()` 
clear password method for backward compatibility reasons (and state so it its 
javadoc).
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 184754)
    Time Spent: 2h 20m  (was: 2h 10m)

> PasswordDecrypter: Delay decryption / Avoid serialization
> ---------------------------------------------------------
>
>                 Key: BEAM-6292
>                 URL: https://issues.apache.org/jira/browse/BEAM-6292
>             Project: Beam
>          Issue Type: Improvement
>          Components: io-java-cassandra
>            Reporter: Mathieu Blanchard
>            Assignee: Mathieu Blanchard
>            Priority: Minor
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> Currently, the password is decrypted before the serialization of the pipeline 
> and this causes the raw version to be visible to everyone on the staging 
> location.
> To avoid this, we delayed the decryption of the password when connecting to 
> the cluster, which ensures that the raw password is never serialized in the 
> pipeline.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to