pgsql-jdbc and ident - Mailing list pgsql-jdbc

From Matt Rose
Subject pgsql-jdbc and ident
Date
Msg-id 20130301160459.GA12543@oscar.engineering.n-able.com
Whole thread Raw
Responses Re: pgsql-jdbc and ident  (dmp <danap@ttc-cmc.net>)
Re: pgsql-jdbc and ident  (Ian Pilcher <arequipeno@gmail.com>)
List 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@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


pgsql-jdbc by date:

Previous
From: Joseph Pravato
Date:
Subject: Re: Automatic transactions in SELECT
Next
From: Ian Pilcher
Date:
Subject: Documentation of LibPQFactory SSL factory?