KYLIN-1442 make PasswordPlaceholderConfigurer work for both AES and BCrypt

Conflicts:
        
server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/97c18ef8
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/97c18ef8
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/97c18ef8

Branch: refs/heads/1.4-rc
Commit: 97c18ef801d267cbf51cf96227b3e6379f261a0f
Parents: 26f4133
Author: shaofengshi <shaofeng...@apache.org>
Authored: Thu Feb 25 11:18:35 2016 +0800
Committer: shaofengshi <shaofeng...@apache.org>
Committed: Thu Feb 25 11:23:29 2016 +0800

----------------------------------------------------------------------
 .../security/PasswordPlaceholderConfigurer.java | 34 ++++++++++++++++----
 1 file changed, 27 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/97c18ef8/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
----------------------------------------------------------------------
diff --git 
a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
 
b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
index b8ccbeb..0c4690f 100644
--- 
a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
+++ 
b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
@@ -18,11 +18,6 @@
 
 package org.apache.kylin.rest.security;
 
-import java.util.Properties;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.SecretKeySpec;
-
 import org.apache.commons.codec.binary.Base64;
 import org.apache.kylin.common.KylinConfig;
 import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
@@ -30,6 +25,10 @@ import org.springframework.core.io.InputStreamResource;
 import org.springframework.core.io.Resource;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+import java.util.Properties;
+
 /**
  * @author xduo
  * 
@@ -75,9 +74,30 @@ public class PasswordPlaceholderConfigurer extends 
PropertyPlaceholderConfigurer
             return props.getProperty(placeholder);
         }
     }
+    
+    private static void printUsage() {
+        System.out.println("Usage: java 
org.apache.kylin.rest.security.PasswordPlaceholderConfigurer <EncryptMethod> 
<your_password>");
+        System.out.println("EncryptMethod: AES or BCrypt");
+    }
 
     public static void main(String[] args) {
-        BCryptPasswordEncoder bCryptPasswordEncoder = new 
BCryptPasswordEncoder();
-        System.out.println(bCryptPasswordEncoder.encode("MODELER"));
+        if (args.length != 2) {
+            printUsage();
+            System.exit(1);
+        }
+
+        String encryptMethod = args[0];
+        String passwordTxt = args[1];
+        if ("AES".equalsIgnoreCase(encryptMethod)) {
+            System.out.println(encryptMethod + " encrypted password is: ");
+            System.out.println(encrypt(passwordTxt));
+        } else if ("BCrypt".equalsIgnoreCase(encryptMethod)) {
+            BCryptPasswordEncoder bCryptPasswordEncoder = new 
BCryptPasswordEncoder();
+            System.out.println(encryptMethod + " encrypted password is: ");
+            System.out.println(bCryptPasswordEncoder.encode(passwordTxt));
+        } else {
+            printUsage();
+            System.exit(1);
+        }
     }
 }

Reply via email to