-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/69534/
-----------------------------------------------------------
(Updated Dec. 17, 2018, 9:17 p.m.)
Review request for hive, Adam Holley, Karthik Manamcheri, Peter Vary, and
Vihang Karajgaonkar.
Changes
-------
Changed IllegalArgumentException to RuntimeException and changed constants to
upper case
Bugs: HIVE-20992
https://issues.apache.org/jira/browse/HIVE-20992
Repository: hive-git
Description
-------
The following new properties were added:
1. metastore.dbaccess.use.SSL (hive.metastore.dbaccess.use.SSL)
2. javax.net.ssl.trustStore
3. javax.net.ssl.trustStorePassword
4. javax.net.ssl.trustStoreType
This was in an effort to guide the user towards an easier SSL
configuration experience. This is the minimum requirement to set up SSL
encryption to the HMS backend store.
This also solves the issue of the truststore password being stored in
plain text. It can now be encrypted by default and loaded through the
MetastoreConf.getPassword() method which handles secure password access
The property "hive.metastore.dbaccess.ssl.properties" is now
deprecated, but it will still be kept for backwards-compatibility purposes.
Diffs (updated)
-----
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java
e25a8cf9a19d78c0cc00bb2e5e0abee4d851ad98
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
3fa21b768cd120cd89343c9ccd142d5e2ccdef2e
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
0cf113c927f2274d085e07cd72921fb35227e1f3
Diff: https://reviews.apache.org/r/69534/diff/6/
Changes: https://reviews.apache.org/r/69534/diff/5-6/
Testing
-------
Tests:
1. Unit tests were added to cover the functionality of configuring the Java
system properties.
2. Performed some manual and sanity tests to ensure that SSL was still
configurable to a remote DB. I performed these on MySQL, PostgreSQL, Oracle,
and Derby DB by creating generic DB hosts and setting them up with SSL. Once
SSL was set up, I triggered the metastore to perform database calls, and
captured packets using tcpdump. I then uploaded my packet captures to
Wireshark, and ensured that none of the data was human-readable.
I plan to upload a document to our Wiki explaining the process of enabling TLS
to these databases.
Thanks,
Morio Ramdenbourg