如何清除Jasypt Java库建议的环境变量?

如何清除Jasypt Java库建议的环境变量?,java,process,environment-variables,jasypt,Java,Process,Environment Variables,Jasypt,Jasypt建议将主密钥传递给Java应用程序的一种方法是通过 在该网页中,jasypt建议: 例如,这将允许用户在环境变量中设置加密密码,启动应用程序或应用程序服务器,让jasypt encryptor对象初始化,然后取消设置变量(从而隐藏它) 如何完成“取消设置变量”部分?我最终遵循@Andreas的建议,即从文件中读取主密钥(理想情况下,该文件应具有限制性权限) 为了保持Jasypt-Spring集成的优势,我定制了一个“FilePBEConfig”: 然后,您可以按照以下建议在Sprin

Jasypt建议将主密钥传递给Java应用程序的一种方法是通过

在该网页中,jasypt建议:

例如,这将允许用户在环境变量中设置加密密码,启动应用程序或应用程序服务器,让jasypt encryptor对象初始化,然后取消设置变量(从而隐藏它)


如何完成“取消设置变量”部分?

我最终遵循@Andreas的建议,即从文件中读取主密钥(理想情况下,该文件应具有限制性权限)

为了保持Jasypt-Spring集成的优势,我定制了一个“FilePBEConfig”:

然后,您可以按照以下建议在Spring xml文件中使用它:



你不能。建议您在文件中输入密码,然后阅读该文件。谢谢您的评论。所以,基本上Jasypt提供了一个不安全的Spring集成?似乎Jasypt Spring应该提供基于文件的方法,除非我遗漏了什么。
package com.my.product;

import org.jasypt.encryption.pbe.config.SimplePBEConfig;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FilePBEConfig extends SimplePBEConfig {
    private String passwordFilePath = null;

    public FilePBEConfig() {
        super();
    }

    public String getPasswordFilePath() {
        return passwordFilePath;
    }

    public void setPasswordFilePath(final String passwordFilePath) throws IOException {
        this.passwordFilePath = passwordFilePath;
        if (passwordFilePath == null) {
            super.setPassword(null);
        } else {
            try (BufferedReader br = new BufferedReader(new FileReader(passwordFilePath))) {
                super.setPassword(br.readLine());
            }
        }
    }
}
 <bean id="fileConfiguration"
     class="com.my.product.FilePBEConfig">
   <property name="algorithm" value="PBEWithMD5AndDES" />
   <property name="passwordFilePath" value="/path/to/masterfile" />
 </bean>