pgsql-jdbc and ident

From: Matt Rose <mrose(at)n-able(dot)com>
To: <pgsql-jdbc(at)postgresql(dot)org>
Subject: pgsql-jdbc and ident
Date: 2013-03-01 16:04:59
Message-ID: 20130301160459.GA12543@oscar.engineering.n-able.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

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(at)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(at)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(at)n-able(dot)com

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Ian Pilcher 2013-03-01 20:40:44 Documentation of LibPQFactory SSL factory?
Previous Message Joseph Pravato 2013-03-01 15:41:51 Re: Automatic transactions in SELECT