package org.hyperic.tools.ant; import org.apache.tools.ant.types.DataType; import org.springframework.security.authentication.encoding.Md5PasswordEncoder; import org.springframework.security.authentication.encoding.ShaPasswordEncoder; public class EncryptProperty extends DataType { private String property; private String targetProperty; public String getTargetProperty() { return targetProperty; } public void setTargetProperty(String targetProperty) { this.targetProperty = targetProperty; } private int strength = 256;//set 256 as default just in case. private boolean encodeHashAsBase64; public String getProperty() { return property; } public void setProperty(String property) { this.property = property; } public int getStrength() { return strength; } public void setStrength(int strength) { this.strength = strength; } public boolean isEncodeHashAsBase64() { return encodeHashAsBase64; } public void setEncodeHashAsBase64(boolean encodeHashAsBase64) { this.encodeHashAsBase64 = encodeHashAsBase64; } public String encode(String value){ // TODO: the following code copies the Md5PlusShaPasswordEncoder, which resides in a dependant project. // This class should be moved into this project instead. Md5PasswordEncoder md5PwdEncoder = new Md5PasswordEncoder(); md5PwdEncoder.setEncodeHashAsBase64(encodeHashAsBase64 ); ShaPasswordEncoder shaPwdEncoder = new ShaPasswordEncoder(strength); shaPwdEncoder.setEncodeHashAsBase64(encodeHashAsBase64 ); String md5Encoded = md5PwdEncoder.encodePassword(value, null); String encrypted = shaPwdEncoder.encodePassword(md5Encoded, null); return encrypted; } }