You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Rabin Banerjee (JIRA)" <ji...@apache.org> on 2016/05/25 06:26:12 UTC
[jira] [Commented] (SQOOP-1933) CryptoFileLoader does not work for
saved jobs
[ https://issues.apache.org/jira/browse/SQOOP-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15299537#comment-15299537 ]
Rabin Banerjee commented on SQOOP-1933:
---------------------------------------
[~jarcec] I have check the issue, and attached a patch, [~SQLEngineer] Check if it works.
> 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.4.7
>
> 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.3.4#6332)