Issue Details (XML | Word | Printable)

Key: JDBC-635
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Mark Rotteveel
Reporter: Agris Skuja
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
Jaybird JDBC Driver

Can not connect to firebird DB using specific usernames

Created: 04/Dec/20 09:46 AM   Updated: 17/Jan/21 09:46 AM
Component/s: JDBC driver
Affects Version/s: Jaybird 3.0.9, Jaybird 4.0.1
Fix Version/s: Jaybird 3.0.10, Jaybird 4.0.2, Jaybird 5

Firebird 3.0.7 (on Linux x64)
Openjdk 15
Issue Links:

 Description  « Hide
We are preparing to migrate from Firebird 2.5 to 3.0.
We encountered strange behaviour when connecting from Java using latest Jaybird 3 (also tried latest 4.x) to Firebird 3.
All test users can connect fine except two users. I installed fresh Firebird 3.0.7 on separate server and initialized new security DB and created those two specific users. Without any luck.
Connections from isql, PHP7, IBExpert work just fine. Connections fail only from Java.

Steps to reproduce:
1. connect to any Firebird 3 database using Srp/Srp256 authorisation.
2. Execute statement:
3. Using Java(Jaybird) try to connect to this DB with user "DAVIDS" and password "aaa123"
4. Result:
java.sql.SQLInvalidAuthorizationSpecException: Your user name and password are not defined. Ask your database administrator to set up a Firebird login. [SQLState:28000, ISC error code:335544472]

Firebird 3.0.7 (on Linux x64)
Openjdk 15
Jaybird 4.0.1 and Jaybird 3.0.9

 All   Comments   Change History   Subversion Commits      Sort Order: Descending order - Click to sort in ascending order

Agris Skuja added a comment - 07/Dec/20 04:33 AM
That was amazingly fast!!! :)
Snapshot would be great to have!

Mark Rotteveel added a comment - 04/Dec/20 04:38 PM
I don't have a planned date for releasing Jaybird 3.0.10 or Jaybird 4.0.2 yet. If you want, I can build a snapshot for you.

Mark Rotteveel added a comment - 04/Dec/20 04:04 PM
Problem found, the username DAVIDS produces a SHA-1 hash (used in the client proof) that starts with a 0 byte, in Firebird those zero bytes are stripped out, but not so in the Jaybird code.

Mark Rotteveel added a comment - 04/Dec/20 12:11 PM
I can reproduce the problem, but I have no clue why. Could you also provide the other username that doesn't work for you, maybe it helps to find a pattern.

The workaround seems to be to use a different username.