Uploaded image for project: 'Sqoop (Retired)'
  1. Sqoop (Retired)
  2. SQOOP-1933

CryptoFileLoader does not work for saved jobs

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.4.5
    • 1.5.0
    • None
    • None
    • Red Hat Enterprise Linux Server release 6.3 (Santiago)

    Description

      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

      Attachments

        1. fixpatch_v1.patch
          1 kB
          Rabin Banerjee

        Activity

          People

            Unassigned Unassigned
            SQLEngineer Karthik S
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: