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 da...@apache.org on 2008/09/04 20:07:56 UTC
svn commit: r692179 - in
/db/derby/code/trunk/java/engine/org/apache/derby/iapi:
services/property/PropertyUtil.java util/IdUtil.java
Author: dag
Date: Thu Sep 4 11:07:56 2008
New Revision: 692179
URL: http://svn.apache.org/viewvc?rev=692179&view=rev
Log:
DERBY-3673 Add checks that a new role isn't already a user authorization id
Patch derby-3673-5. Corrects and cleans up Javadoc comments. No code changes.
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/property/PropertyUtil.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/property/PropertyUtil.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/property/PropertyUtil.java?rev=692179&r1=692178&r2=692179&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/property/PropertyUtil.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/property/PropertyUtil.java Thu Sep 4 11:07:56 2008
@@ -522,13 +522,12 @@
/**
- * Return true if username is defined as an effective property
- * i.e. there exists a property "<code>derby.user.</code><userid>"
- * in the database (or, possibly, in system properties if not
- * forbidden by derby.database.propertiesOnly). Note that <userid>
- * found in a property will be normalized to internal form before
- * comparison is performed against username, which is presumed
- * normalized already.
+ * Return {@code true} if {@code username} is defined as a built-in user
+ * i.e. there exists a property {@code derby.user.}<userid> in the
+ * database (or, possibly, in system properties if not forbidden by {@code
+ * derby.database.propertiesOnly}). Note that <userid> found in a
+ * property will be normalized to case normal form before comparison is
+ * performed against username, which is presumed normalized already.
*
* @param set object which implements PersistentSet interface
* (TransactionController)
@@ -566,9 +565,9 @@
/**
* Return true if username is defined as a system property
- * i.e. there exists a property "<code>derby.user.</code><userid>"
- * in the system properties. Note that <userid> will be
- * normalized to internal form before comparison is performed
+ * i.e. there exists a property {@code derby.user.}<userid>
+ * in the system properties. Note that <userid> will be
+ * normalized to case normal form before comparison is performed
* against username, which is presumed normalized already.
* @param username Normalized authorization identifier
* @return {@code true} if match found
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java?rev=692179&r1=692178&r2=692179&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java Thu Sep 4 11:07:56 2008
@@ -202,37 +202,44 @@
/**
- * Given an internal SQL authorization identifier, convert it to a
+ * Given a case normal form SQL authorization identifier, convert it to a
* form that may be compared with the username of Derby builtin
- * authentication, which uses Java properties of the from
- * derby.user.<username>.
+ * authentication, which uses Java properties of the form
+ * {@code derby.user.}<username>.
+ * <p>
+ * The returned form is suitable for comparing against the property string,
+ * cf. {@code systemPropertiesExistsBuiltinUser}.
+ * <p>
+ * E.g.:
+ * <p>
+ * <pre>
+ * Argument -> Return
+ * ------------------
+ * EVE -> eve [will match Java property: derby.user.eve]
+ * eVe -> "eVe" [will match Java property: derby.user."eVe"]
+ * "eve" -> """eve""" [will match Java property: derby.user."""eVe"""]
+ * \eve\ -> "\eve\" [will match Java property: derby.user."\eve\"]
*
- * The returned form is suitable for comparing to the property
- * string after it has been parsed by Java, e.g. any backslash
- * quotes has been processed. That is, this method does not add
- * backslash quotes, either.
+ * The latter could look this if specified on a Unix shell command line:
*
- * E.g.
- * EVE -> eve (never eVe, or EVE, or EVe: we use a lower case canonical
- * form) [external property form: derby.user.eve]
- * eVe -> "eVe" [external property form: derby.user."eVe"]
- * "eve" -> "eve" [external property form: derby.user."\"eVe\""]
- * \eve\ -> "\eve\" [external property form: derby.user."\\eve\\"]
+ * -Dderby.user.'"\eve\"'=<password>
*
- * Since parseSQLIdentifier maps many-to-one, the backward mapping
- * is non-unique, so the chosen lower case canonical from is
- * arbitrary.
- *
- * E.g. we will not be able to correctly map back the non-canonical:
- *
- * [external property form: derby.user.eVe]
- *
- * since this is internally EVE (but see DERBY-3150), and maps back as eve.
- *
- * Note that the returned form is not necessarily parsable back
- * using parseSQLIdentifier; it may need further quoting, cf. examples
- * above of external property forms.
+ * Note: The processing of properties specified on the command line do not
+ * interpret backslash as escape in the way done by the
+ * java.util.Properties#load method, so no extra backslash is needed above.
*
+ * </pre>
+ * Since parseSQLIdentifier maps many-to-one, the backward mapping is
+ * non-unique, so the chosen lower case canonical form is arbitrary,
+ * e.g. we will not be able to correctly match the non-canonical:
+ * <p>
+ * <pre>
+ * [Java property: derby.user.eVe]
+ * </pre>
+ * since this is internally EVE (but see DERBY-3150), and maps back as eve
+ * after the rules above.
+ * @see org.apache.derby.iapi.services.property.PropertyUtil#propertiesContainsBuiltinUser
+ * @see org.apache.derby.iapi.services.property.PropertyUtil#systemPropertiesExistsBuiltinUser
*/
public static String SQLIdentifier2CanonicalPropertyUsername(String authid){
boolean needsQuote = false;