import java.io.*; import java.util.*; import org.owasp.esapi.EncryptedProperties; import org.owasp.esapi.errors.EncryptionException; import org.owasp.esapi.reference.crypto.DefaultEncryptedProperties; // Purpose: Short code snippet to show how to display encrypted property files // that were encrypted using ESAPI's EncryptedProperties class. // // Usage: java -classpath DisplayEncryptedProperties encryptedPropFileName // where is proper classpath, which minimally include esapi.jar & log4j.jar public class DisplayEncryptedProperties { public DisplayEncryptedProperties() { } public void loadProperties(String encryptedPropertiesFilename, Properties props ) throws IOException { EncryptedProperties loader = new DefaultEncryptedProperties(); loader.load( new FileInputStream( new File( encryptedPropertiesFilename) ) ); System.out.println("\n\nLoaded encrypted properties file..."); try { props.setProperty( "database.driver", loader.getProperty( "database.driver" ) ); props.setProperty( "jdbc.url", loader.getProperty( "jdbc.url" ) ); props.setProperty( "jdbc.username", loader.getProperty( "jdbc.username" ) ); props.setProperty( "jdbc.password", loader.getProperty( "jdbc.password" ) ); } catch( EncryptionException ee ) { ee.printStackTrace(); } } public void showProperties(Properties props) throws Exception { System.out.println(""); String value = null; value = props.getProperty( "database.driver"); System.out.println("database.driver=" + value); value = props.getProperty( "jdbc.url"); System.out.println("jdbc.url=" + value); value = props.getProperty( "jdbc.username"); System.out.println("jdbc.username=" + value); value = props.getProperty( "jdbc.password"); System.out.println("jdbc.password=" + value); } public static void main(String[] args) { try { DisplayEncryptedProperties dep = new DisplayEncryptedProperties(); Properties props = new Properties(); String encryptedPropFname = "encrypted.properties"; if ( args.length == 1 ) { encryptedPropFname = args[0]; } else { System.err.println("Usage: java -classpath DisplayEncryptedProperties encryptedPropFileName"); System.exit(2); } dep.loadProperties(encryptedPropFname, props); dep.showProperties(props); } catch(Throwable t) { System.err.println("Caught: " + t.getClass().getName() + "; exception msg: " + t); t.printStackTrace(System.err); } } }