You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rajesh Kartha (JIRA)" <de...@db.apache.org> on 2006/09/04 01:08:23 UTC

[jira] Updated: (DERBY-1711) In an embedded env, connection happens properly even when the password supplied is wrong.

     [ http://issues.apache.org/jira/browse/DERBY-1711?page=all ]

Rajesh Kartha updated DERBY-1711:
---------------------------------

    Attachment: 1171.sql

As Francois already mentioned, the  'derby.connection.requireAuthentication'' is a static property and the db needs to be rebooted to take effect.

Based on the java repro attached before I have written a sql script that mimcs the same steps, but have added a shutdown=true for the database in between for the property to take effect. The authentication then works as expected. 

Hope this helps.  Please do post to the list should you have any further questions.

-Rajesh


Here is the output and the sql file is attached.

ij version 10.2
ij> connect 'jdbc:derby:FSIDB;create=true';
ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.connection.requireAuthentication','true');
0 rows inserted/updated/deleted
ij> VALUES SYSCS_UTIL.SYSCS_GET_DATABASE_PROPERTY('derby.connection.requireAuthentication');
1                                                                                                                               
--------------------------------------------------------------------------------------------------------------------------------
true                                                                                                                            

1 row selected
ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.authentication.provider', 'BUILTIN');
0 rows inserted/updated/deleted
ij> CALL  SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.sa', 'admin123');
0 rows inserted/updated/deleted
ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.defaultConnectionMode','noAccess');
0 rows inserted/updated/deleted
ij> VALUES SYSCS_UTIL.SYSCS_GET_DATABASE_PROPERTY('derby.database.defaultConnectionMode');
1                                                                                                                               
--------------------------------------------------------------------------------------------------------------------------------
noAccess                                                                                                                        

1 row selected
ij> CALL  SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.fullAccessUsers', 'sa');
0 rows inserted/updated/deleted
ij> VALUES SYSCS_UTIL.SYSCS_GET_DATABASE_PROPERTY('derby.database.fullAccessUsers');
1                                                                                                                               
--------------------------------------------------------------------------------------------------------------------------------
sa                                                                                                                              

1 row selected
ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.propertiesOnly', 'false');
0 rows inserted/updated/deleted
ij> disconnect;
ij> --
--
--Shutdown the database for validation to take effect
--
--
connect 'jdbc:derby:FSIDB;shutdown=true;user=sa;password=admin123';
ERROR 08006: Database 'FSIDB' shutdown.
ij> --
--
--Wrong password for the VALID user 'sa' - FAIL
--
--
connect 'jdbc:derby:FSIDB;user=sa;password=wrongpwd';
ERROR 08004: Connection refused : Invalid authentication.
ij> --
--
--Try with valid user and password - SUCCESS
--
--
connect 'jdbc:derby:FSIDB;user=sa;password=admin123';
ij> disconnect;
ij> --
--
-- INVALID user - FAIL
--
--
connect 'jdbc:derby:FSIDB;user=sa1;password=admin123';
ERROR 08004: Connection refused : Invalid authentication.
ij> --
--
--Wrong password for the VALID user 'sa' - FAIL
--
--
connect 'jdbc:derby:FSIDB;create=true;user=sa;password=wrongpwd';
ERROR 08004: Connection refused : Invalid authentication.
ij

> In an embedded env, connection happens properly even when the password supplied is wrong.
> -----------------------------------------------------------------------------------------
>
>                 Key: DERBY-1711
>                 URL: http://issues.apache.org/jira/browse/DERBY-1711
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.1.3.1
>         Environment: Win XP,Java 1.4.x
>            Reporter: Chinmay Bajikar
>         Attachments: 1171.sql, derby.zip
>
>
> Hi,
> I am a new user of Derby.
> Have tried to set user authorization at the database level using the example given in the Derby Dev Guide.(Page 85).
> The steps that I do are as follows,
> 1)Create a db (using create=true attribute in the connection url)
> 2) Connect to the db and set the appropriate properties i.e. set requireAuthentication to true,provider to builtin, add a new user,passwrd and give it full access.
> 3) Set the default access level to noAccess.
> 4) Close this connection.
> 5) Now make a new connection using the user name/passwd.It connects fine.
> 6) Now try to make a new connection using a wrong user name and it gives a Connection Refused exception.
> 7) Finally try giving a right username and wrong passwd and the connection still happens.
> Have attached the source file which does all these above steps for reproducing the issue.
> Thanks,
> Chinmay.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira