Hi,

there seems to be an issue with 'NetworkServerControl shutdown' and
authentication.  Your comments appreciated.

Here's what I'm doing:

1) Start the network server with these args (all on one line):

$ java -Dderby.connection.requireAuthentication=true
       -Dderby.authentication.provider=BUILTIN
       -Dderby.user.MARTIN=martinspassword
       -Dderby.database.sqlAuthorization=true
       org.apache.derby.drda.NetworkServerControl start

Security manager installed using the Basic server security policy.
Apache Derby Network Server - 10.4.0.0 alpha - (549159M) started and ready to ac
cept connections on port 1527 at 2007-06-20 22:47:08.562 GMT


2) This DOES work: shutdown from a client with authentication:

$ java org.apache.derby.tools.ij
ij version 10.4
ij> connect 
'jdbc:derby://localhost:1527/;shutdown=true;user=MARTIN;password=martinspassword';
ERROR XJ015: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ015, SQLERRMC: Derby 
system shutdown.

   The error code/message is to be expected, I think.


3) What does NOT work and results in a server crash: run shutdown
   from NetworkServerControl with authentication (restarted server):

java -Dderby.connection.requireAuthentication=true
     -Dderby.authentication.provider=BUILTIN
     -Dderby.user.MARTIN=martinspassword
     -Dderby.database.sqlAuthorization=true
     org.apache.derby.drda.NetworkServerControl shutdown

   This command makes the server process terminate after this message:

Derby shutdown warning:
 Connection refused : Invalid authentication.
Apache Derby Network Server - 10.4.0.0 alpha - (549159M) shutdown at 2007-06-20
22:52:59.093 GMT

   Some printlns I put into
       org.apache.derby.jdbc.InternalDriver.connect()
   suggest that the wrong user name 'APP' (instead of 'MARTIN') is being
   used for authentication:

--> InternalDriver.connect()
connect(): finfo = {shutdown=true}
connect(): IdUtil.getUserNameFromURLProps(finfo) = APP


Questions:

- Was I using the authentication properties correctly for 'shutdown'?

- An authentication failure ("Derby shutdown warning") should not result
  in the termination (or crash) of the server process, right?

- For better diagnostics, should the "Invalid authentication" message
  tell the user name being used for authentication?

Thanks,
Martin

Reply via email to