Re: pgsql-jdbc and ident

From: dmp <danap(at)ttc-cmc(dot)net>
To: Matt Rose <mrose(at)n-able(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: pgsql-jdbc and ident
Date: 2013-03-02 19:56:59
Message-ID: 5132598B.4020100@ttc-cmc.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello Matt,

Have you looked through the archive for ident authorizations with the pgJDBC?

If that turns up no results please post ident quthorization with the JDBC to
the server PostgreSQL forum. Else see if someone else replays that knows more.

I can duplicate your problem and have tracked the return from the initial
sendStartupPacket() in v3/ConnectionFactoryImpl to 'E' for doAuthentication().

This would imply to me that the server does not recognize the operating
system user as required in the pg_ident.conf for your user, root, to be
sqlrelay. I not sure this is even being communicated to the server from
pgJDBC for authorization with ident, in your test case.

Please also look through the manual to see if other parameters can be sent
to the server to indicate the operating system user in the connection string.

danap.

Matt Rose wrote:
> 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?
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Stephen Nelson 2013-03-03 20:52:00 Re: Working toward a JTA 1.0.1 Compliant XADataSource
Previous Message Adam Gray 2013-03-02 14:30:03 Re: Working toward a JTA 1.0.1 Compliant XADataSource