[ https://issues.apache.org/jira/browse/SQOOP-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Attila Szabo updated SQOOP-1933: -------------------------------- Fix Version/s: (was: 1.4.7) 1.5.0 > 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 > Fix For: 1.5.0 > > Attachments: fixpatch_v1.patch > > > 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.4.14#64029)