我必须使用yarn cluster提交一个java应用程序,该应用程序使用apache beam和beam sql for business rules在这个作业中目前我正在使用openssl命令在linux机器上创建一个加密文件,我正在执行javajar。
openssl enc -aes-256-cbc -salt -in s3_nonprod.txt -out s3_nonprod.txt.enc
下面是我在属性文件中使用的解密命令的一些代码片段,以及我用来解密已经加密的密码文件的方法。
**command used in properties file --**
S3_ENCRYPTION_PASSWORD=echo -n \"password\" | openssl enc -aes-256-cbc -d -in /home/encryption/s3_nonprod.txt.enc -pass stdin 2>/dev/null
**Method to decrypt password from the encrypted password file --**
public String decrypteOpenSSLPassword(String decryptedCommand) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", decryptedCommand);
String password="";
Process process = processBuilder.start();
process.waitFor();
if (process.exitValue() == 0) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
password = bufferedReader.readLine();
} else {
throw new StarBeamException("Error during decoding password! please verify the command");
}
return password;
}
如果我不必使用yarn cluster来提交jar,那么上面的方法就像宝石一样工作,但是根据组织中的新规范,我需要使用spark yarn cluster(它部署在我们没有访问权限的中央linux机器上)来提交我的代码。
所以问题是,由于我无法访问部署了yarn的服务器,我没有地方放置加密文件,根据我当前的实现,我需要一种方法,这样我就不必管理该加密文件。
我需要你的帮助来解决这个问题,我怎样才能在jar中加密和解密密码,或者用任何其他的方法。
请询问是否以上没有很好的解释或任何更多的信息是必需的。
暂无答案!
目前还没有任何答案,快来回答吧!