Author: aadamchik
Date: Sun Dec 24 09:14:06 2006
New Revision: 490048

URL: http://svn.apache.org/viewvc?view=rev&rev=490048
Log:
CAY-642: Add support for encrypted JDBC passwords
(fixing build errors)

Modified:
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/ConfigSaver.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/DriverDataSourceFactory.java
    
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/conf/ConfigSaverTest.java

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/ConfigSaver.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/ConfigSaver.java?view=diff&rev=490048&r1=490047&r2=490048
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/ConfigSaver.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/ConfigSaver.java
 Sun Dec 24 09:14:06 2006
@@ -186,42 +186,43 @@
 
         if (info.getUserName() != null) {
             pw.print("\t<login" + attribute("userName", info.getUserName()));
+        }
 
-            if 
(info.getPasswordLocation().equals(DataSourceInfo.PASSWORD_LOCATION_MODEL)) {
+        if 
(info.getPasswordLocation().equals(DataSourceInfo.PASSWORD_LOCATION_MODEL)) {
+            PasswordEncoding encoder = info.getPasswordEncoder();
+            if (encoder != null)
+                pw.print(attribute("password", encoder.encodePassword(
+                        info.getPassword(),
+                        info.getPasswordEncoderSalt())));
+        }
+        else if (info.getPasswordLocation().equals(
+                DataSourceInfo.PASSWORD_LOCATION_CLASSPATH)) {
+            if (info.getPasswordSource() != null) {
+                File passwordFile = new File(project.getProjectDirectory()
+                        + File.separator
+                        + info.getPasswordSource());
                 PasswordEncoding encoder = info.getPasswordEncoder();
-                if (encoder != null)
-                    pw.print(attribute("password", encoder.encodePassword(info
-                            .getPassword(), info.getPasswordEncoderSalt())));
-            }
-            else if (info.getPasswordLocation().equals(
-                    DataSourceInfo.PASSWORD_LOCATION_CLASSPATH)) {
-                if (info.getPasswordSource() != null) {
-                    File passwordFile = new File(project.getProjectDirectory()
-                            + File.separator
-                            + info.getPasswordSource());
-                    PasswordEncoding encoder = info.getPasswordEncoder();
-                    if (encoder != null && passwordFile != null) {
-                        try {
-                            PrintStream out = new PrintStream(new 
FileOutputStream(
-                                    passwordFile));
-                            
out.print(encoder.encodePassword(info.getPassword(), info
-                                    .getPasswordEncoderSalt()));
-                            out.close();
-                        }
-                        catch (FileNotFoundException exception) {
-                            // TODO Auto-generated catch block
-                            exception.printStackTrace();
-                        }
+                if (encoder != null && passwordFile != null) {
+                    try {
+                        PrintStream out = new PrintStream(new FileOutputStream(
+                                passwordFile));
+                        out.print(encoder.encodePassword(info.getPassword(), 
info
+                                .getPasswordEncoderSalt()));
+                        out.close();
+                    }
+                    catch (FileNotFoundException exception) {
+                        // TODO Auto-generated catch block
+                        exception.printStackTrace();
                     }
                 }
             }
-
-            pw.println(attribute("encoderClass", 
info.getPasswordEncoderClass())
-                    + attribute("encoderSalt", info.getPasswordEncoderSalt())
-                    + attribute("passwordLocation", info.getPasswordLocation())
-                    + attribute("passwordSource", info.getPasswordSource())
-                    + "/>");
         }
+
+        pw.println(attribute("encoderClass", info.getPasswordEncoderClass())
+                + attribute("encoderSalt", info.getPasswordEncoderSalt())
+                + attribute("passwordLocation", info.getPasswordLocation())
+                + attribute("passwordSource", info.getPasswordSource())
+                + "/>");
 
         pw.println("</driver>");
     }

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/DriverDataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/DriverDataSourceFactory.java?view=diff&rev=490048&r1=490047&r2=490048
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/DriverDataSourceFactory.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/conf/DriverDataSourceFactory.java
 Sun Dec 24 09:14:06 2006
@@ -307,13 +307,14 @@
 
             // Replace {} in passwordSource with encoderSalt -- useful for 
EXECUTABLE &
             // URL options
-            if (encoderSalt != null)
-                passwordSource = passwordSource.replace("\\{\\}", encoderSalt);
+            if (encoderSalt != null) {
+                passwordSource = passwordSource.replaceAll("\\{\\}", 
encoderSalt);
+            }
 
             PasswordEncoding passwordEncoder = driverInfo.getPasswordEncoder();
 
             if (passwordLocation != null) // New style model (v1.2), process 
extra
-                                            // locations
+            // locations
             {
                 if 
(passwordLocation.equals(DataSourceInfo.PASSWORD_LOCATION_CLASSPATH)) {
                     URL url = 
parentConfiguration.getResourceLocator().findResource(

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/conf/ConfigSaverTest.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/conf/ConfigSaverTest.java?view=diff&rev=490048&r1=490047&r2=490048
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/conf/ConfigSaverTest.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/conf/ConfigSaverTest.java
 Sun Dec 24 09:14:06 2006
@@ -73,7 +73,7 @@
                StringWriter str = new StringWriter();
                PrintWriter out = new PrintWriter(str);
 
-           saver.storeDataNode(out, info);
+           saver.storeDataNode(out, null, info);
 
                out.close();
                str.close();


Reply via email to