Fondo
Sé que no debemos almacenar contraseñas en variables de cadena en Java / .Net (deben almacenarse en objetos mutables, como matrices de caracteres). Y cuando se trata de los aspectos de la interfaz de usuario, tenemos widgets de campo de contraseña y métodos seguros como los objetos getPassword y SecureString.
Problema 1
Cuando se trata de aplicaciones de consola (Java), solíamos pasar los argumentos del comando como una matriz de cadenas. Entonces, cuando necesitamos insertar una contraseña en el programa, debemos romper nuestra regla fundamental con cadenas. ¿Cómo podemos asegurar este escenario?
Problema 2
Estoy trabajando en una aplicación Java Spring MVC (REST) y debo pasar un conjunto de contraseñas cuando comience el servicio. El siguiente es el método que estoy usando ahora para estas inyecciones.
@Value("${Password1}")
private String pwd1;
@Value("${Password2}")
private String pwd2;
Y cuando empiezo mi servicio, necesito inyectar mi contraseña de la siguiente manera usando gradlew y las propiedades de Vanilla spring.
gradlew bootrun -DPassword1=!@# -DPassword2=$%$
¿Cómo puedo asegurar estas contraseñas?