diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 860e15f494e..10c67336875 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -3403,4 +3403,8 @@ public String getKerberosJaasConfPath() { public String getKerberosPrincipal() { return getOptional("kylin.kerberos.principal"); } + + public String getEncryptCipherIvSpec() { + return getOptional("kylin.security.encrypt.cipher.ivSpec", "AAAAAAAAAAAAAAAA"); + } } diff --git a/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java index b9b4ddb8cc5..224c9e8dd05 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java @@ -25,6 +25,7 @@ import java.security.NoSuchAlgorithmException; import org.apache.commons.codec.binary.Base64; +import org.apache.kylin.common.KylinConfig; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; @@ -42,7 +43,7 @@ private static final Cipher getCipher(int cipherMode) throws InvalidAlgorithmPar InvalidKeyException, NoSuchPaddingException, NoSuchAlgorithmException, UnsupportedEncodingException { Cipher cipher = Cipher.getInstance("AES/CFB/PKCS5Padding"); final SecretKeySpec secretKey = new SecretKeySpec(key, "AES"); - IvParameterSpec ivSpec = new IvParameterSpec("AAAAAAAAAAAAAAAA".getBytes("UTF-8")); + IvParameterSpec ivSpec = new IvParameterSpec(KylinConfig.getInstanceFromEnv().getEncryptCipherIvSpec().getBytes("UTF-8")); cipher.init(cipherMode, secretKey, ivSpec); return cipher; } diff --git a/core-common/src/test/java/org/apache/kylin/common/util/EncryptUtilTest.java b/core-common/src/test/java/org/apache/kylin/common/util/EncryptUtilTest.java index da985caccde..5cb88992211 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/EncryptUtilTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/EncryptUtilTest.java @@ -18,10 +18,21 @@ package org.apache.kylin.common.util; +import org.junit.After; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; -public class EncryptUtilTest { +public class EncryptUtilTest extends LocalFileMetadataTestCase { + @Before + public void setUp() throws Exception { + this.createTestMetadata(); + } + + @After + public void after() throws Exception { + this.cleanupTestMetadata(); + } @Test public void testAESEncrypt(){ diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java b/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java index 66b7ba0ec75..c6508b3ae28 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/DiagnosisService.java @@ -86,15 +86,16 @@ public BadQueryHistory getProjectBadQueryHistory(String project) throws IOExcept public String dumpProjectDiagnosisInfo(String project, File exportPath) throws IOException { Message msg = MsgPicker.getMsg(); + String projectName = ValidateUtil.convertStringToBeAlphanumericUnderscore(project); ProjectInstance projectInstance = ProjectManager.getInstance(KylinConfig.getInstanceFromEnv()) - .getProject(ValidateUtil.convertStringToBeAlphanumericUnderscore(project)); + .getProject(projectName); if (null == projectInstance) { throw new BadRequestException( - String.format(Locale.ROOT, msg.getDIAG_PROJECT_NOT_FOUND(), project)); + String.format(Locale.ROOT, msg.getDIAG_PROJECT_NOT_FOUND(), projectName)); } aclEvaluate.checkProjectOperationPermission(projectInstance); - String[] args = { project, exportPath.getAbsolutePath() }; + String[] args = { projectName, exportPath.getAbsolutePath() }; runDiagnosisCLI(args); return getDiagnosisPackageName(exportPath); } diff --git a/server/src/main/webapp/WEB-INF/web.xml b/server/src/main/webapp/WEB-INF/web.xml index 8602c714053..f9849b80357 100644 --- a/server/src/main/webapp/WEB-INF/web.xml +++ b/server/src/main/webapp/WEB-INF/web.xml @@ -75,7 +75,7 @@ cors.supportsCredentials - true + false