Karthik S created SQOOP-1933:
--------------------------------
Summary: CryptoFileLoader does not work for saved jobs
Key: SQOOP-1933
URL: https://issues.apache.org/jira/browse/SQOOP-1933
Project: Sqoop
Issue Type: Bug
Affects Versions: 1.4.5
Environment: Red Hat Enterprise Linux Server release 6.3 (Santiago)
Reporter: Karthik S
I am able to use the CryptoFile Loader to read encrypted passwords from a
simple import command. However, the same command does not work from saved jobs
The below command works. There are no problems with it. It successfully
decrypts the password and imports into hdfs
sqoop import
-Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader
-Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqooppass --driver
com.mysql.jdbc.Driver --connect jdbc:mysql://00.00.000.000:0000/test --username
user --password-file /user/user1/temp.txt --table emp --target-dir
/user/user1/karthik/e129 --split-by emp_id
However, When i try using saved jobs, it does not work.
sqoop job
-Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader
-Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqooppass --create
job9 -- import --driver com.mysql.jdbc.Driver --connect
jdbc:mysql://00.00.000.000:3306/test --username user --password-file
/user/user1/temp.txt --table emp --target-dir /user/user1/karthik/e130
--split-by emp_id
sqoop job -exec job9 -- --target-dir /user/user1/emp_103
It gives error
14/12/22 15:39:48 ERROR sqoop.Sqoop: Got exception running Sqoop:
java.lang.RuntimeException: Unable to fetch password from file.
java.lang.RuntimeException: Unable to fetch password from file.
at
org.apache.sqoop.SqoopOptions.loadPasswordProperty(SqoopOptions.java:667)
at org.apache.sqoop.SqoopOptions.loadProperties(SqoopOptions.java:617)
at
org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.read(HsqldbJobStorage.java:299)
at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:198)
at org.apache.sqoop.tool.JobTool.run(JobTool.java:283)
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
Caused by: java.io.IOException: Can't decrypt the password
at
org.apache.sqoop.util.password.CryptoFileLoader.loadPassword(CryptoFileLoader.java:151)
at
org.apache.sqoop.util.CredentialsUtil.fetchPasswordFromLoader(CredentialsUtil.java:81)
at
org.apache.sqoop.SqoopOptions.loadPasswordProperty(SqoopOptions.java:664)
... 10 more
Caused by: javax.crypto.BadPaddingException: Given final block not properly
padded
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676)
at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:313)
at javax.crypto.Cipher.doFinal(Cipher.java:2087)
at
org.apache.sqoop.util.password.CryptoFileLoader.loadPassword(CryptoFileLoader.java:149)
... 12 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)