You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Qian Xu (JIRA)" <ji...@apache.org> on 2015/03/13 04:38:38 UTC

[jira] [Updated] (SQOOP-1933) CryptoFileLoader does not work for saved jobs

     [ https://issues.apache.org/jira/browse/SQOOP-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Qian Xu updated SQOOP-1933:
---------------------------
    Fix Version/s:     (was: 1.4.5)
                   1.4.7

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