You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2005/07/06 20:52:11 UTC
svn commit: r209498 - in /incubator/derby/code/trunk/java:
client/org/apache/derby/client/am/ client/org/apache/derby/jdbc/
testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/
testing/org/apache/derbyTesting/functionTests/tests/derbynet/
Author: djd
Date: Wed Jul 6 11:52:10 2005
New Revision: 209498
URL: http://svn.apache.org/viewcvs?rev=209498&view=rev
Log:
Derby-406 - Sets the username to start with the default value ("APP")
Derby-410 - Sets the server name to start with the default value ("localhost")
Derby-409 - Adds a semi-colon in the connection class to avoid databasenames like
myDBcreate=true resulting from no dividing semi-colon.
- Add javadoced methods in the derbynet/dataSourcePermissions_net.java file to test this new functionality
Contributed by Philip Wilder <05...@acadiau.ca>
Modified:
incubator/derby/code/trunk/java/client/org/apache/derby/client/am/Connection.java
incubator/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSource.java
incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out
incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java
Modified: incubator/derby/code/trunk/java/client/org/apache/derby/client/am/Connection.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/client/org/apache/derby/client/am/Connection.java?rev=209498&r1=209497&r2=209498&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/client/org/apache/derby/client/am/Connection.java (original)
+++ incubator/derby/code/trunk/java/client/org/apache/derby/client/am/Connection.java Wed Jul 6 11:52:10 2005
@@ -155,7 +155,8 @@
user_ = user;
// Extract common properties.
- databaseName_ = dataSource.getDatabaseName() + dataSource.getConnectionAttributes();
+ // Derby-409 fix
+ databaseName_ = dataSource.getDatabaseName() + ";" + dataSource.getConnectionAttributes();
retrieveMessageText_ = dataSource.getRetrieveMessageText();
loginTimeout_ = dataSource.getLoginTimeout();
Modified: incubator/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSource.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSource.java?rev=209498&r1=209497&r2=209498&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSource.java (original)
+++ incubator/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSource.java Wed Jul 6 11:52:10 2005
@@ -136,8 +136,9 @@
// ---------------------------- serverName -----------------------------------
//
- //
- protected String serverName = null;
+ // Derby-410 fix.
+ protected String serverName = propertyDefault_serverName;
+ public final static String propertyDefault_serverName = "localhost";
public final static String propertyKey_serverName = "serverName";
// serverName is not permitted in a properties object
@@ -153,7 +154,8 @@
// Each data source implementation subclass will maintain it's own <code>password</code> property.
// This password property may or may not be declared transient, and therefore may be serialized
// to a file in clear-text, care must taken by the user to prevent security breaches.
- protected String user = null;
+ // Derby-406 fix
+ protected String user = propertyDefault_user;
public final static String propertyKey_user = "user";
public final static String propertyDefault_user = "APP";
Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out?rev=209498&r1=209497&r2=209498&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out Wed Jul 6 11:52:10 2005
@@ -7,7 +7,7 @@
Checking connections with DataSource
EXPECTED SHUTDOWN DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'wombat' shutdown.
data source with no default user
-EXPECTED CONNFAIL null userid not supported
+EXPECTED CONNFAIL Connection authorization failure occurred. Reason: userid invalid.
EXPECTED CONNFAIL Connection authorization failure occurred. Reason: userid invalid.
DS connected as EDWARD
DS connected as FRANCES
@@ -22,7 +22,7 @@
EXPECTED SHUTDOWN DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'wombat' shutdown.
Checking connections with ConnectionPoolDataSource
ConnectionPoolDataSource with no default user
-EXPECTED CONNFAIL null userid not supported
+EXPECTED CONNFAIL Connection authorization failure occurred. Reason: userid invalid.
EXPECTED CONNFAIL Connection authorization failure occurred. Reason: userid invalid.
CP connected as EDWARD
CP connected as FRANCES
@@ -39,4 +39,23 @@
PASS: Message text not retrieved
** checkMessageText() with retrieveMessageText= true
PASS: Message Text retrieved properly
+Begin connection attribute tests
+One attribute test: PASS.
+Another different attribute: PASS.
+Two Attributes: PASS.
+End connection attribute tests
+Begin username and password tests
+Normal test: PASS.
+No username or password, only attributes test: PASS.
+Bogus username and password, good attributes test: PASS.
+Username, password attribute test: PASS.
+Password, username attribute test: PASS.
+Turning off authentication
+EXPECTED SHUTDOWN DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'wombat' shutdown.
+Username, no password test: PASS.
+No username, password test: PASS.
+No username, no password test: PASS.
+Turning on authentication
+EXPECTED SHUTDOWN DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'wombat' shutdown.
+End username and password tests
Completed dataSourcePermissions_net
Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java?rev=209498&r1=209497&r2=209498&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dataSourcePermissions_net.java Wed Jul 6 11:52:10 2005
@@ -185,9 +185,14 @@
if (TestUtil.isJCCFramework())
{
attrs.setProperty("driverType","4");
+ /**
+ * As per the fix of derby-410
+ * servername should now default to localhost
+ */
+ attrs.setProperty("serverName","localhost");
}
- attrs.setProperty("serverName","localhost");
+
attrs.setProperty("portNumber","20000");
//attrs.setProperty("retrieveMessagesFromServerOnGetMessage","true");
return attrs;
@@ -246,6 +251,12 @@
{
testRetrieveMessageText();
testDescription();
+
+ //Added for Derby-409
+ testConnectionAttributes();
+
+ //Added for Derby-406
+ allUsernameAndPasswordTests();
}
/**
@@ -361,7 +372,129 @@
}
}
-
+
+ /**
+ * Added for Derby-409
+ *
+ * Designed to test combinations of attributes to insure that
+ * no exceptions are thrown.
+ */
+ public void testConnectionAttributes() {
+ try {
+ System.out.println("Begin connection attribute tests");
+ testDataSourceConnection("One attribute test: ",
+ "EDWARD", "noodle", "create=true");
+ testDataSourceConnection("Another different attribute: ",
+ "EDWARD", "noodle", "tracefile=trace.out");
+ testDataSourceConnection("Two Attributes: ",
+ "EDWARD", "noodle", "create=true;tracefile=trace.out");
+ System.out.println("End connection attribute tests");
+ }
+ catch (Exception e)
+ {
+ System.out.println("FAIL: testSetConnectionAttributes() Unexpected Exception " + e.getMessage());
+ e.printStackTrace(System.out);
+ }
+ }
+
+ /**
+ * Added for Derby-406
+ *
+ * Tests DataSource with a number of different username/password
+ * input combinations.
+ */
+ public void allUsernameAndPasswordTests() {
+
+ try {
+ System.out.println("Begin username and password tests");
+
+ testDataSourceConnection("Normal test: ", "EDWARD", "noodle", null);
+
+ testDataSourceConnection("No username or password, only attributes test: ",
+ null, null, "user=EDWARD;password=noodle");
+
+ testDataSourceConnection("Bogus username and password, good attributes test: ",
+ "Whatis", "theMatrix?", "user=EDWARD;password=noodle");
+
+ testDataSourceConnection("Username, password attribute test: ",
+ "EDWARD", null, "password=noodle");
+
+ testDataSourceConnection("Password, username attribute test: ",
+ null, "noodle", "user=EDWARD");
+
+ System.out.println("Turning off authentication");
+ DataSource ds = getDS("wombat", "EDWARD", "noodle");
+ Connection conn = ds.getConnection();
+ CallableStatement cs = conn.prepareCall("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?, ?)");
+ cs.setString(1, "derby.connection.requireAuthentication");
+ cs.setString(2, "false");
+ cs.execute();
+ cs.close();
+ cs = null;
+ conn.close();
+ //We have to shut down before the changes will take effect.
+ shutdown();
+ start();
+
+ testDataSourceConnection("Username, no password test: ",
+ "EDWARD", null, null);
+
+ testDataSourceConnection("No username, password test: ",
+ null, "noodle", null);
+
+ testDataSourceConnection("No username, no password test: ",
+ null, null, null);
+
+ System.out.println("Turning on authentication");
+ ds = getDS("wombat", "EDWARD", "noodle");
+ conn = ds.getConnection();
+ cs = conn.prepareCall("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?, ?)");
+ cs.setString(1, "derby.connection.requireAuthentication");
+ cs.setString(2, "true");
+ cs.execute();
+ cs.close();
+ cs = null;
+ conn.close();
+ shutdown();
+ start();
+
+ System.out.println("End username and password tests");
+ }
+ catch (Exception e)
+ {
+ System.out.println("FAIL: allUsernameAndPasswordTests. Unexpected Exception " + e.getMessage());
+ e.printStackTrace(System.out);
+ }
+ }
+
+ /**
+ * A method that attempts to retrieve the connection via a datasource
+ * with the given user, password and connection attributes.
+ *
+ * @param testType A string description of the type of test
+ * @param username The user
+ * @param password The Password
+ * @param attributes A string to be added to a properties object. A
+ * null string means null Property object.
+ * @throws SQLException
+ */
+ public void testDataSourceConnection(String testType, String username, String password, String attributes) throws SQLException {
+ try {
+ System.out.print(testType);
+ Properties props = null;
+ if (attributes != null) {
+ props = new Properties();
+ props.put("ConnectionAttributes", attributes);
+ }
+ DataSource ds = getDS("wombat", username, password, props);
+ Connection conn = ds.getConnection();
+ conn.close();
+ System.out.println("PASS.");
+ } catch (SQLException e) {
+ System.out.println("FAIL. Unexpected Exception: ");
+ e.printStackTrace(System.out);
+ }
+ }
}