I am having the oddest problem with postgresql-9.2-1002.jdbc3.jar doing
ident authentication against postgresql-9.2.3
I have in my pg_ident.conf the following entries
# MAPNAME SYSTEM-USERNAME PG-USERNAME
nusers root postgres
nusers root sqlrelay
nusers nable sqlrelay
and pg_hba.conf has the following entry.
host all all 127.0.0.1/32 ident map=nusers
and when I test the following configuration with psql, everything works
perfectly:
[root@localhost]# psql mickey sqlrelay -h 127.0.0.1
psql (9.2.2)
Type "help" for help.
mickey=>
and I can even see the identd server getting the ident auth request from
postgresql and return the correct string
Mar 1 10:46:58 localhost oidentd[31730]: Connection from localhost
(127.0.0.1):56502
Mar 1 10:46:58 localhost oidentd[31730]: [localhost] Successful lookup:
37704 , 5432 : root (root)
However, when I try and connect with a simple jdbc tester that I made, I
get the following.
[root@localhost]# java -jar /home/admin/pgtest.jar
Running as user 'root'
postgresql JDBC Driver Registered!
SQLException: FATAL: Ident authentication failed for user "sqlrelay"
SQLState: 28000
VendorError: 0
Exception in thread "main" java.lang.NullPointerException
at
net.folkwolf.PostgreSQLJDBCDriverTest.main(PostgreSQLJDBCDriverTest.java:35)
and even in the logs I see that, even tho the JDBC is authenticating as
root, the ident server is returning NO-USER
Mar 1 10:48:14 localhost oidentd[31745]: Connection from localhost
(127.0.0.1):42316
Mar 1 10:48:14 localhost postgres[31744]: [64-1] LOG: 00000: invalidly
formatted response from Ident server: "37705,5432:ERROR:NO-USER#015
Mar 1 10:48:14 localhost postgres[31744]: [64-2] #011"
Mar 1 10:48:14 localhost postgres[31744]: [64-3] LOCATION: ident_inet,
auth.c:1743
Mar 1 10:48:14 localhost postgres[31744]: [65-1] FATAL: 28000: Ident
authentication failed for user "sqlrelay"
Mar 1 10:48:14 localhost postgres[31744]: [65-2] LOCATION:
auth_failed, auth.c:302
I've tried both kinds of connection calls, both the
conn =
DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/mickey",
"sqlrelay",null);
and
conn =
DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/mickey?user=sqlrelay");
with identical results. Can anyone help me figure out what I'm missing here?
--
Matt Rose, Systems Engineer, N-able Technologies: mrose@n-able.com