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)

Reply via email to