[
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)