{"action":"created","comment":{"url":"https://api.github.com/repos/youtube/vitess/pulls/comments/91974949","pull_request_review_id":12484017,"id":91974949,"diff_hunk":"@@ -98,6 +98,24 @@ private Constants() {\n         public static final String KEYSPACE = \"KEYSPACE\";\n         public static final String USERNAME = \"userName\";\n         public static final String EXECUTE_TYPE = \"executeType\";\n+\n+        public static final String USE_SSL = \"useSSL\";\n+\n+        public static final String KEYSTORE = \"keyStore\";\n+        public static final String KEYSTORE_PASSWORD = \"keyStorePassword\";\n+        public static final String KEY_ALIAS = \"keyAlias\";\n+        public static final String KEY_PASSWORD = \"keyPassword\";\n+        public static final String TRUSTSTORE = \"trustStore\";\n+        public static final String TRUSTSTORE_PASSWORD = \"trustStorePassword\";\n+        public static final String TRUSTSTORE_ALIAS = \"trustAlias\";\n+\n+        public static final String KEYSTORE_FULL = \"javax.net.ssl.keyStore\";\n+        public static final String KEYSTORE_PASSWORD_FULL = \"javax.net.ssl.keyStorePassword\";","path":"java/jdbc/src/main/java/com/flipkart/vitess/util/Constants.java","position":16,"original_position":16,"commit_id":"1bc20cadb33a7b8d99578f924782f7db02787535","original_commit_id":"35ea60042bc68e4d66f2b7d1f09b321763730d80","user":{"login":"steve-perkins","id":3734297,"avatar_url":"https://avatars.githubusercontent.com/u/3734297?v=3","gravatar_id":"","url":"https://api.github.com/users/steve-perkins","html_url":"https://github.com/steve-perkins","followers_url":"https://api.github.com/users/steve-perkins/followers","following_url":"https://api.github.com/users/steve-perkins/following{/other_user}","gists_url":"https://api.github.com/users/steve-perkins/gists{/gist_id}","starred_url":"https://api.github.com/users/steve-perkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steve-perkins/subscriptions","organizations_url":"https://api.github.com/users/steve-perkins/orgs","repos_url":"https://api.github.com/users/steve-perkins/repos","events_url":"https://api.github.com/users/steve-perkins/events{/privacy}","received_events_url":"https://api.github.com/users/steve-perkins/received_events","type":"User","site_admin":false},"body":"Bug... I was incorrectly using KEY_PASSWORD_FULL twice in `VitessVTGateManager`.  Thanks!","created_at":"2016-12-12T15:56:32Z","updated_at":"2016-12-12T15:56:33Z","html_url":"https://github.com/youtube/vitess/pull/2349#discussion_r91974949","pull_request_url":"https://api.github.com/repos/youtube/vitess/pulls/2349","_links":{"self":{"href":"https://api.github.com/repos/youtube/vitess/pulls/comments/91974949"},"html":{"href":"https://github.com/youtube/vitess/pull/2349#discussion_r91974949"},"pull_request":{"href":"https://api.github.com/repos/youtube/vitess/pulls/2349"}}},"pull_request":{"url":"https://api.github.com/repos/youtube/vitess/pulls/2349","id":97009847,"html_url":"https://github.com/youtube/vitess/pull/2349","diff_url":"https://github.com/youtube/vitess/pull/2349.diff","patch_url":"https://github.com/youtube/vitess/pull/2349.patch","issue_url":"https://api.github.com/repos/youtube/vitess/issues/2349","number":2349,"state":"open","locked":false,"title":"WIP: Adding TLS support to the Java client and JDBC driver","user":{"login":"steve-perkins","id":3734297,"avatar_url":"https://avatars.githubusercontent.com/u/3734297?v=3","gravatar_id":"","url":"https://api.github.com/users/steve-perkins","html_url":"https://github.com/steve-perkins","followers_url":"https://api.github.com/users/steve-perkins/followers","following_url":"https://api.github.com/users/steve-perkins/following{/other_user}","gists_url":"https://api.github.com/users/steve-perkins/gists{/gist_id}","starred_url":"https://api.github.com/users/steve-perkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steve-perkins/subscriptions","organizations_url":"https://api.github.com/users/steve-perkins/orgs","repos_url":"https://api.github.com/users/steve-perkins/repos","events_url":"https://api.github.com/users/steve-perkins/events{/privacy}","received_events_url":"https://api.github.com/users/steve-perkins/received_events","type":"User","site_admin":false},"body":"re: Issue #2209 \r\n\r\nTLS connections are already supported by VTGate, gRPC, and all of the non-Java clients.  For Java to reach parity, support is needed in the `grpc-client`, `client`, and `jdbc` modules under `src/github.com/youtube/vitess/java`.\r\n\r\n**This PR is a work in progress... visible for early review and vetting, but not yet ready to merge.**  \r\n\r\nAt this point, the `VitessJDBCUrl` class parses an optional parameter, which indicates that a connection should use SSL.  The parameter follows standard MySQL JDBC conventions.\r\n\r\nPending commits will:\r\n\r\n1. Update `GrpcClientFactory`, to expose a method for creating a TLS-enabled `RpcClient` in addition to the current plaintext one.\r\n2. Update `VitessVTGateManager`, to use this new method when the JDBC URL calls for SSL.\r\n3. Write unit test coverage for the above, using a `vtgateclienttest` mock in a style similar to the `src/github.com/youtube/vitess/test/encrypted_transport.py` script.\r\n4. End-to-end testing.  Update `examples/local/vtgate-up.sh`, to use TLS with a self-signed cert when an optional parameter is passed.  Also update the `examples/client_jdbc.sh` test script, to likewise use a TLS connection when an optional parameter is passed.\r\n\r\nAny feedback about this approach is definitely welcomed!","created_at":"2016-12-07T21:23:10Z","updated_at":"2016-12-12T15:56:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fd1ea70a8412c167dd3c3b9476c24d8e3265e8c0","assignee":{"login":"harshit-gangal","id":11834506,"avatar_url":"https://avatars.githubusercontent.com/u/11834506?v=3","gravatar_id":"","url":"https://api.github.com/users/harshit-gangal","html_url":"https://github.com/harshit-gangal","followers_url":"https://api.github.com/users/harshit-gangal/followers","following_url":"https://api.github.com/users/harshit-gangal/following{/other_user}","gists_url":"https://api.github.com/users/harshit-gangal/gists{/gist_id}","starred_url":"https://api.github.com/users/harshit-gangal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harshit-gangal/subscriptions","organizations_url":"https://api.github.com/users/harshit-gangal/orgs","repos_url":"https://api.github.com/users/harshit-gangal/repos","events_url":"https://api.github.com/users/harshit-gangal/events{/privacy}","received_events_url":"https://api.github.com/users/harshit-gangal/received_events","type":"User","site_admin":false},"assignees":[{"login":"harshit-gangal","id":11834506,"avatar_url":"https://avatars.githubusercontent.com/u/11834506?v=3","gravatar_id":"","url":"https://api.github.com/users/harshit-gangal","html_url":"https://github.com/harshit-gangal","followers_url":"https://api.github.com/users/harshit-gangal/followers","following_url":"https://api.github.com/users/harshit-gangal/following{/other_user}","gists_url":"https://api.github.com/users/harshit-gangal/gists{/gist_id}","starred_url":"https://api.github.com/users/harshit-gangal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harshit-gangal/subscriptions","organizations_url":"https://api.github.com/users/harshit-gangal/orgs","repos_url":"https://api.github.com/users/harshit-gangal/repos","events_url":"https://api.github.com/users/harshit-gangal/events{/privacy}","received_events_url":"https://api.github.com/users/harshit-gangal/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/youtube/vitess/pulls/2349/commits","review_comments_url":"https://api.github.com/repos/youtube/vitess/pulls/2349/comments","review_comment_url":"https://api.github.com/repos/youtube/vitess/pulls/comments{/number}","comments_url":"https://api.github.com/repos/youtube/vitess/issues/2349/comments","statuses_url":"https://api.github.com/repos/youtube/vitess/statuses/1bc20cadb33a7b8d99578f924782f7db02787535","head":{"label":"BetterCloud:java-tls","ref":"java-tls","sha":"1bc20cadb33a7b8d99578f924782f7db02787535","user":{"login":"BetterCloud","id":16746213,"avatar_url":"https://avatars.githubusercontent.com/u/16746213?v=3","gravatar_id":"","url":"https://api.github.com/users/BetterCloud","html_url":"https://github.com/BetterCloud","followers_url":"https://api.github.com/users/BetterCloud/followers","following_url":"https://api.github.com/users/BetterCloud/following{/other_user}","gists_url":"https://api.github.com/users/BetterCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/BetterCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BetterCloud/subscriptions","organizations_url":"https://api.github.com/users/BetterCloud/orgs","repos_url":"https://api.github.com/users/BetterCloud/repos","events_url":"https://api.github.com/users/BetterCloud/events{/privacy}","received_events_url":"https://api.github.com/users/BetterCloud/received_events","type":"Organization","site_admin":false},"repo":{"id":73726364,"name":"vitess","full_name":"BetterCloud/vitess","owner":{"login":"BetterCloud","id":16746213,"avatar_url":"https://avatars.githubusercontent.com/u/16746213?v=3","gravatar_id":"","url":"https://api.github.com/users/BetterCloud","html_url":"https://github.com/BetterCloud","followers_url":"https://api.github.com/users/BetterCloud/followers","following_url":"https://api.github.com/users/BetterCloud/following{/other_user}","gists_url":"https://api.github.com/users/BetterCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/BetterCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BetterCloud/subscriptions","organizations_url":"https://api.github.com/users/BetterCloud/orgs","repos_url":"https://api.github.com/users/BetterCloud/repos","events_url":"https://api.github.com/users/BetterCloud/events{/privacy}","received_events_url":"https://api.github.com/users/BetterCloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/BetterCloud/vitess","description":"Vitess is a database clustering system for horizontal scaling of MySQL.","fork":true,"url":"https://api.github.com/repos/BetterCloud/vitess","forks_url":"https://api.github.com/repos/BetterCloud/vitess/forks","keys_url":"https://api.github.com/repos/BetterCloud/vitess/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BetterCloud/vitess/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BetterCloud/vitess/teams","hooks_url":"https://api.github.com/repos/BetterCloud/vitess/hooks","issue_events_url":"https://api.github.com/repos/BetterCloud/vitess/issues/events{/number}","events_url":"https://api.github.com/repos/BetterCloud/vitess/events","assignees_url":"https://api.github.com/repos/BetterCloud/vitess/assignees{/user}","branches_url":"https://api.github.com/repos/BetterCloud/vitess/branches{/branch}","tags_url":"https://api.github.com/repos/BetterCloud/vitess/tags","blobs_url":"https://api.github.com/repos/BetterCloud/vitess/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BetterCloud/vitess/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BetterCloud/vitess/git/refs{/sha}","trees_url":"https://api.github.com/repos/BetterCloud/vitess/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BetterCloud/vitess/statuses/{sha}","languages_url":"https://api.github.com/repos/BetterCloud/vitess/languages","stargazers_url":"https://api.github.com/repos/BetterCloud/vitess/stargazers","contributors_url":"https://api.github.com/repos/BetterCloud/vitess/contributors","subscribers_url":"https://api.github.com/repos/BetterCloud/vitess/subscribers","subscription_url":"https://api.github.com/repos/BetterCloud/vitess/subscription","commits_url":"https://api.github.com/repos/BetterCloud/vitess/commits{/sha}","git_commits_url":"https://api.github.com/repos/BetterCloud/vitess/git/commits{/sha}","comments_url":"https://api.github.com/repos/BetterCloud/vitess/comments{/number}","issue_comment_url":"https://api.github.com/repos/BetterCloud/vitess/issues/comments{/number}","contents_url":"https://api.github.com/repos/BetterCloud/vitess/contents/{+path}","compare_url":"https://api.github.com/repos/BetterCloud/vitess/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BetterCloud/vitess/merges","archive_url":"https://api.github.com/repos/BetterCloud/vitess/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BetterCloud/vitess/downloads","issues_url":"https://api.github.com/repos/BetterCloud/vitess/issues{/number}","pulls_url":"https://api.github.com/repos/BetterCloud/vitess/pulls{/number}","milestones_url":"https://api.github.com/repos/BetterCloud/vitess/milestones{/number}","notifications_url":"https://api.github.com/repos/BetterCloud/vitess/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BetterCloud/vitess/labels{/name}","releases_url":"https://api.github.com/repos/BetterCloud/vitess/releases{/id}","deployments_url":"https://api.github.com/repos/BetterCloud/vitess/deployments","created_at":"2016-11-14T16:48:28Z","updated_at":"2016-11-14T16:48:34Z","pushed_at":"2016-12-12T15:50:14Z","git_url":"git://github.com/BetterCloud/vitess.git","ssh_url":"git@github.com:BetterCloud/vitess.git","clone_url":"https://github.com/BetterCloud/vitess.git","svn_url":"https://github.com/BetterCloud/vitess","homepage":"http://vitess.io","size":73734,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"youtube:master","ref":"master","sha":"d169ef624f4c59185c4a28fa952e1bfed8e966ff","user":{"login":"youtube","id":4052902,"avatar_url":"https://avatars.githubusercontent.com/u/4052902?v=3","gravatar_id":"","url":"https://api.github.com/users/youtube","html_url":"https://github.com/youtube","followers_url":"https://api.github.com/users/youtube/followers","following_url":"https://api.github.com/users/youtube/following{/other_user}","gists_url":"https://api.github.com/users/youtube/gists{/gist_id}","starred_url":"https://api.github.com/users/youtube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/youtube/subscriptions","organizations_url":"https://api.github.com/users/youtube/orgs","repos_url":"https://api.github.com/users/youtube/repos","events_url":"https://api.github.com/users/youtube/events{/privacy}","received_events_url":"https://api.github.com/users/youtube/received_events","type":"Organization","site_admin":false},"repo":{"id":11008207,"name":"vitess","full_name":"youtube/vitess","owner":{"login":"youtube","id":4052902,"avatar_url":"https://avatars.githubusercontent.com/u/4052902?v=3","gravatar_id":"","url":"https://api.github.com/users/youtube","html_url":"https://github.com/youtube","followers_url":"https://api.github.com/users/youtube/followers","following_url":"https://api.github.com/users/youtube/following{/other_user}","gists_url":"https://api.github.com/users/youtube/gists{/gist_id}","starred_url":"https://api.github.com/users/youtube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/youtube/subscriptions","organizations_url":"https://api.github.com/users/youtube/orgs","repos_url":"https://api.github.com/users/youtube/repos","events_url":"https://api.github.com/users/youtube/events{/privacy}","received_events_url":"https://api.github.com/users/youtube/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/youtube/vitess","description":"Vitess is a database clustering system for horizontal scaling of MySQL.","fork":false,"url":"https://api.github.com/repos/youtube/vitess","forks_url":"https://api.github.com/repos/youtube/vitess/forks","keys_url":"https://api.github.com/repos/youtube/vitess/keys{/key_id}","collaborators_url":"https://api.github.com/repos/youtube/vitess/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/youtube/vitess/teams","hooks_url":"https://api.github.com/repos/youtube/vitess/hooks","issue_events_url":"https://api.github.com/repos/youtube/vitess/issues/events{/number}","events_url":"https://api.github.com/repos/youtube/vitess/events","assignees_url":"https://api.github.com/repos/youtube/vitess/assignees{/user}","branches_url":"https://api.github.com/repos/youtube/vitess/branches{/branch}","tags_url":"https://api.github.com/repos/youtube/vitess/tags","blobs_url":"https://api.github.com/repos/youtube/vitess/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/youtube/vitess/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/youtube/vitess/git/refs{/sha}","trees_url":"https://api.github.com/repos/youtube/vitess/git/trees{/sha}","statuses_url":"https://api.github.com/repos/youtube/vitess/statuses/{sha}","languages_url":"https://api.github.com/repos/youtube/vitess/languages","stargazers_url":"https://api.github.com/repos/youtube/vitess/stargazers","contributors_url":"https://api.github.com/repos/youtube/vitess/contributors","subscribers_url":"https://api.github.com/repos/youtube/vitess/subscribers","subscription_url":"https://api.github.com/repos/youtube/vitess/subscription","commits_url":"https://api.github.com/repos/youtube/vitess/commits{/sha}","git_commits_url":"https://api.github.com/repos/youtube/vitess/git/commits{/sha}","comments_url":"https://api.github.com/repos/youtube/vitess/comments{/number}","issue_comment_url":"https://api.github.com/repos/youtube/vitess/issues/comments{/number}","contents_url":"https://api.github.com/repos/youtube/vitess/contents/{+path}","compare_url":"https://api.github.com/repos/youtube/vitess/compare/{base}...{head}","merges_url":"https://api.github.com/repos/youtube/vitess/merges","archive_url":"https://api.github.com/repos/youtube/vitess/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/youtube/vitess/downloads","issues_url":"https://api.github.com/repos/youtube/vitess/issues{/number}","pulls_url":"https://api.github.com/repos/youtube/vitess/pulls{/number}","milestones_url":"https://api.github.com/repos/youtube/vitess/milestones{/number}","notifications_url":"https://api.github.com/repos/youtube/vitess/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/youtube/vitess/labels{/name}","releases_url":"https://api.github.com/repos/youtube/vitess/releases{/id}","deployments_url":"https://api.github.com/repos/youtube/vitess/deployments","created_at":"2013-06-27T21:20:28Z","updated_at":"2016-12-12T12:33:55Z","pushed_at":"2016-12-12T15:50:15Z","git_url":"git://github.com/youtube/vitess.git","ssh_url":"git@github.com:youtube/vitess.git","clone_url":"https://github.com/youtube/vitess.git","svn_url":"https://github.com/youtube/vitess","homepage":"http://vitess.io","size":103312,"stargazers_count":4078,"watchers_count":4078,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":544,"mirror_url":null,"open_issues_count":40,"forks":544,"open_issues":40,"watchers":4078,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/youtube/vitess/pulls/2349"},"html":{"href":"https://github.com/youtube/vitess/pull/2349"},"issue":{"href":"https://api.github.com/repos/youtube/vitess/issues/2349"},"comments":{"href":"https://api.github.com/repos/youtube/vitess/issues/2349/comments"},"review_comments":{"href":"https://api.github.com/repos/youtube/vitess/pulls/2349/comments"},"review_comment":{"href":"https://api.github.com/repos/youtube/vitess/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/youtube/vitess/pulls/2349/commits"},"statuses":{"href":"https://api.github.com/repos/youtube/vitess/statuses/1bc20cadb33a7b8d99578f924782f7db02787535"}}}}
{"actor":{"display_login":"steve-perkins"}}