[
https://issues.apache.org/jira/browse/DERBY-866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-866:
--------------------------------
Attachment: derby-866-10-ac-propChanging.diff
Attaching derby-866-10-ac-propChanging.diff. This patch adds logic to govern
the on-disk setting of the derby.authentication.provider property. Tests passed
cleanly for me.
This patch makes the following changes:
1) Prevents an existing database from being set to NATIVE LOCAL authentication
if the DBO's credentials haven't been stored.
2) Prevents derby.authentication.provider from being set on disk to any NATIVE
value other than NATIVE::LOCAL.
3) Prevents NATIVE LOCAL authentication from being turned off or overridden
once it has been turned on.
4) No longer sets derby.database.sqlAuthorization=true when creating a
credentials DB. Instead, the database figures out whether SQL authorization is
on based on whether derby.database.sqlAuthorization is set or NATIVE
authentication is on.
Touches the following files
-----------------
M java/engine/org/apache/derby/iapi/services/property/PropertyUtil.java
M
java/engine/org/apache/derby/impl/jdbc/authentication/AuthenticationServiceBase.java
If NATIVE authentication is set on-disk, then this trumps all other settings of
derby.authentication.provider.
-----------------
M java/storeless/org/apache/derby/impl/storeless/EmptyDictionary.java
M java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
M
java/engine/org/apache/derby/impl/jdbc/authentication/NativeAuthenticationServiceImpl.java
Removes the transaction argument from DataDictionary.getUser(). The argument
was not used.
-----------------
M java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
Don't set derby.database.sqlAuthorization on disk when creating a credentials
DB. Instead, determine whether SQL authorization is on by consulting both
derby.database.sqlAuthorization and derby.authentication.provider.
-----------------
M java/engine/org/apache/derby/loc/messages.xml
M java/shared/org/apache/derby/shared/common/reference/SQLState.java
New error message raised on bad attempts to set derby.authentication.provider
on disk.
-----------------
M java/testing/org/apache/derbyTesting/junit/TestConfiguration.java
M java/testing/org/apache/derbyTesting/junit/DatabaseChangeSetup.java
Logic to shutdown a single-use database as part of a test.
-----------------
M
java/testing/org/apache/derbyTesting/functionTests/tests/lang/NativeAuthenticationServiceTest.java
New tests to verify the functionality added by this patch.
> Derby User Management Enhancements
> ----------------------------------
>
> Key: DERBY-866
> URL: https://issues.apache.org/jira/browse/DERBY-866
> Project: Derby
> Issue Type: Improvement
> Components: Services
> Affects Versions: 10.2.1.6
> Reporter: Francois Orsini
> Assignee: Rick Hillegas
> Attachments: Derby_User_Enhancement.html,
> Derby_User_Enhancement_v1.1.html, DummyAuthenticator.java,
> UserManagement.html, UserManagement.html, UserManagement.html,
> UserManagement.html, derby-866-01-aa-sysusers.diff,
> derby-866-01-ab-sysusers.diff, derby-866-02-ag-createDropUser.diff,
> derby-866-03-aa-resetModifyPassword.diff,
> derby-866-03-ab-resetModifyPassword.diff, derby-866-04-aa-fixRolesTest.diff,
> derby-866-05-aa-grantRevoke.diff, derby-866-06-aa-upgradeFrom10.1.diff,
> derby-866-07-aa-removeSQLPassword.diff, derby-866-08-aa-passwordHasher.diff,
> derby-866-08-ab-passwordHasher.diff, derby-866-08-ad-passwordHasher.diff,
> derby-866-09-ad-nativeAuthenticationService.diff,
> derby-866-09-ae-nativeAuthenticationServiceWithTests.diff,
> derby-866-10-ac-propChanging.diff, dummyCredentials.properties
>
>
> Proposal to enhance Derby's Built-In DDL User Management. (See proposal spec
> attached to the JIRA).
> Abstract:
> This feature aims at improving the way BUILT-IN users are managed in Derby by
> providing a more intuitive and familiar DDL interface. Currently (in
> 10.1.2.1), Built-In users can be defined at the system and/or database level.
> Users created at the system level can be defined via JVM or/and Derby system
> properties in the derby.properties file. Built-in users created at the
> database level are defined via a call to a Derby system procedure
> (SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY) which sets a database property.
> Defining a user at the system level is very convenient and practical during
> the development phase (EOD) of an application - However, the user's password
> is not encrypted and consequently appears in clear in the derby.properties
> file. Hence, for an application going into production, whether it is embedded
> or not, it is preferable to create users at the database level where the
> password is encrypted.
> There is no real ANSI SQL standard for managing users in SQL but by providing
> a more intuitive and known interface, it will ease Built-In User management
> at the database level as well as Derby's adoption.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira