[
https://issues.apache.org/jira/browse/DERBY-4642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kathey Marsden updated DERBY-4642:
----------------------------------
Urgency: Low
Labels: derby_triage10_8 (was: )
Triaged for 10.8. I am not sure how easy it would be to suppress the
exception logging for the makeDummyConnection() case. Does
makeDummyConnection, provide any value when it fails due to authentication
problems?
> Successful login with securityMechanism=8 writes exception to log
> -----------------------------------------------------------------
>
> Key: DERBY-4642
> URL: https://issues.apache.org/jira/browse/DERBY-4642
> Project: Derby
> Issue Type: Bug
> Components: Network Server
> Affects Versions: 10.4.1.3, 10.5.3.0, 10.6.1.0, 10.7.1.1
> Reporter: Knut Anders Hatlen
> Priority: Minor
> Labels: derby_triage10_8
>
> With authentication and strong password substitution enabled, the first
> connection to a database logs an exception, even if the connection attempt
> was successful.
> Example:
> Start a network server in one terminal:
> $ java -Dderby.connection.requireAuthentication=true -Dderby.user.test=test
> -jar /code/derby/trunk0/jars/sane/derbynet.jar start
> 2010-05-05 08:04:00.857 GMT : Security manager installed using the Basic
> server security policy.
> 2010-05-05 08:04:01.121 GMT : Apache Derby Network Server - 10.7.0.0 alpha -
> (941167P) started and ready to accept connections on port 1527
> Then, in another terminal, connect to the database using ij:
> java -jar /code/derby/trunk0/jars/sane/derbyrun.jar ij
> ij version 10.7
> ij> connect
> 'jdbc:derby://localhost/db;create=true;user=test;password=test;securityMechanism=8';
> ij> values 'I''m in! :)';
> 1
> ----------
> I'm in! :)
> 1 row selected
> ij>
> Even though the connection was successfully established, the following
> exception is written to derby.log:
> java.sql.SQLException: Connection authentication failure occurred. Reason:
> Invalid authentication..
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:142)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:148)
> at
> org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:227)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnection.java:3044)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.checkUserCredentials(EmbedConnection.java:1218)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:402)
> at
> org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:73)
> at
> org.apache.derby.impl.jdbc.EmbedConnection40.<init>(EmbedConnection40.java:54)
> at
> org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
> at
> org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:238)
> at
> org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
> at
> org.apache.derby.impl.drda.Database.makeDummyConnection(Database.java:268)
> at
> org.apache.derby.impl.drda.DRDAConnThread.validateSecMecUSRSSBPWD(DRDAConnThread.java:8834)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseACCSEC(DRDAConnThread.java:1964)
> at
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:948)
> at
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
> Logging an exception when nothing is wrong is confusing and may make users
> think there's a real problem.
> The exception itself is harmless, though. Database.makeDummyConnection() is
> expected to fail in some circumstances. It attempts to connect to the
> database without specifying any credentials in order to boot the database.
> That code doesn't care whether a connection is returned or an exception is
> thrown, since the database is booted even if the credentials are invalid.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira