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 2007/10/31 16:42:03 UTC
svn commit: r590720 - in /db/derby/code/trunk/java:
engine/org/apache/derby/catalog/SystemProcedures.java
testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
Author: djd
Date: Wed Oct 31 08:42:02 2007
New Revision: 590720
URL: http://svn.apache.org/viewvc?rev=590720&view=rev
Log:
DERBY-3160 Make SYSCS_GET_USER_ACCESS treat the passed in user name in its normal form, as for example would be passed by using the expression CURRENT_USER
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java?rev=590720&r1=590719&r2=590720&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java Wed Oct 31 08:42:02 2007
@@ -1626,21 +1626,27 @@
/**
* Get the connection level authorization for
* a specific user - SYSCS_UTIL.SYSCS_GET_USER_ACCESS.
+ *
+ * @param userName name of the user in its normal form (not a SQL identifier).
+
*/
public static String SYSCS_GET_USER_ACCESS(String userName)
throws SQLException
{
try {
- String sqlUser = IdUtil.getUserAuthorizationId(userName);
+ if (userName == null)
+ throw StandardException.newException(SQLState.AUTH_INVALID_USER_NAME,
+ userName);
+
String fullUserList =
SYSCS_GET_DATABASE_PROPERTY(Property.FULL_ACCESS_USERS_PROPERTY);
- if (IdUtil.idOnList(sqlUser, fullUserList))
+ if (IdUtil.idOnList(userName, fullUserList))
return Property.FULL_ACCESS;
String readOnlyUserList =
SYSCS_GET_DATABASE_PROPERTY(Property.READ_ONLY_ACCESS_USERS_PROPERTY);
- if (IdUtil.idOnList(sqlUser, readOnlyUserList))
+ if (IdUtil.idOnList(userName, readOnlyUserList))
return Property.READ_ONLY_ACCESS;
String defaultAccess =
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java?rev=590720&r1=590719&r2=590720&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java Wed Oct 31 08:42:02 2007
@@ -223,6 +223,7 @@
for (int i = 1; i < USERS.length; i++)
{
String jdbcUserName = USERS[i];
+
boolean delimited = jdbcUserName.charAt(0) == '"';
String normalUserName;
if (delimited)
@@ -254,8 +255,8 @@
connUser.close();
psGetAccess.setString(1, normalUserName);
- //JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(),
- // "READONLYACCESS");
+ JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(),
+ "READONLYACCESS");
commit();
// clear the property.
@@ -269,8 +270,8 @@
connUser.close();
psGetAccess.setString(1, normalUserName);
- //JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(),
- // "FULLACCESS");
+ JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(),
+ "FULLACCESS");
commit();
@@ -290,8 +291,8 @@
connUser.close();
psGetAccess.setString(1, normalUserName);
- //JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(),
- // "READONLYACCESS");
+ JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(),
+ "READONLYACCESS");
commit();
}
@@ -732,19 +733,19 @@
PreparedStatement psGetAccess = conn1.prepareStatement(
"VALUES SYSCS_UTIL.SYSCS_GET_USER_ACCESS(?)");
- psGetAccess.setString(1, "jamie");
+ psGetAccess.setString(1, "JAMIE");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
psGetAccess.setString(1, "DAN");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
- psGetAccess.setString(1, "system");
+ psGetAccess.setString(1, "SYSTEM");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
psGetAccess.setString(1, "AMES");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "READONLYACCESS");
- psGetAccess.setString(1, "mickEy");
+ psGetAccess.setString(1, "MICKEY");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "READONLYACCESS");
// unknown user
@@ -765,13 +766,13 @@
psGetAccess.setString(1, "AMES");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
- psGetAccess.setString(1, "miCKEY");
+ psGetAccess.setString(1, "MICKEY");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "READONLYACCESS");
- psGetAccess.setString(1, "jamie");
+ psGetAccess.setString(1, "JAMIE");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
psGetAccess.setString(1, "DAN");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
- psGetAccess.setString(1, "system");
+ psGetAccess.setString(1, "SYSTEM");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
// and change AMES back again
@@ -782,13 +783,13 @@
psGetAccess.setString(1, "AMES");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "READONLYACCESS");
- psGetAccess.setString(1, "miCKEY");
+ psGetAccess.setString(1, "MICKEY");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "READONLYACCESS");
- psGetAccess.setString(1, "jamie");
+ psGetAccess.setString(1, "JAMIE");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
psGetAccess.setString(1, "DAN");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
- psGetAccess.setString(1, "system");
+ psGetAccess.setString(1, "SYSTEM");
JDBC.assertSingleValueResultSet(psGetAccess.executeQuery(), "FULLACCESS");
// add a new users in
@@ -903,13 +904,7 @@
CallableStatement csSetAccess = conn1.prepareCall(
"CALL SYSCS_UTIL.SYSCS_SET_USER_ACCESS(?, ?)");
- // Clear out the properties to ensure we start afresh
- setDatabaseProperty("derby.database.fullAccessUsers",
- null, conn1);
- setDatabaseProperty("derby.database.readOnlyAccessUsers",
- null, conn1);
-
- csSetAccess.setString(1, "dan");
+ csSetAccess.setString(1, "DAN");
csSetAccess.setString(2, "FULLACCESS");
csSetAccess.execute();