GSSAPI/KRB5 and JDBC (again)

Поиск
Список
Период
Сортировка
От Peter Koczan
Тема GSSAPI/KRB5 and JDBC (again)
Дата
Msg-id 4544e0330807241604ye974d07x34408ac3cc11cf3e@mail.gmail.com
обсуждение исходный текст
Ответы Re: GSSAPI/KRB5 and JDBC (again)
Список pgsql-jdbc
Hello again, I've finally had time to test out Kris' patches for
GSSAPI support in the Postgres 8.3 JDBC
(http://ejurka.com/pgsql/jars/gss), but I'm not quite getting it
right, it seems. The JDBC built fine, and it connects properly via
MD5, but it can't get a GSSAPI connection, even with Kris' advice in
http://archives.postgresql.org/pgsql-jdbc/2008-01/msg00154.php

$ export CLASSPATH=/s/postgresql-8.3.3/src/postgresql-jdbc-8.3-603.src/jars/postgresql.jar:.
$ java -Djava.security.auth.login.config=login.conf Jdbc
Uncaught exception in main...
org.postgresql.util.PSQLException: GSS Authentication failed
        at org.postgresql.gss.MakeGSS.authenticate(MakeGSS.java:36)
        at org.postgresql.Driver.makeGSS(Driver.java:775)
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:373)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:98)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:124)
        at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
        at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:29)
        at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
        at org.postgresql.Driver.makeConnection(Driver.java:386)
        at org.postgresql.Driver.connect(Driver.java:260)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)
        at Jdbc.main(Jdbc.java:15)
Caused by: javax.security.auth.login.LoginException: Integrity check
on decrypted field failed (31)
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:696)
        at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:542)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
        at org.postgresql.gss.MakeGSS.authenticate(MakeGSS.java:30)
        ... 13 more
Caused by: KrbException: Integrity check on decrypted field failed (31)
        at sun.security.krb5.internal.crypto.DesCbcEType.decrypt(DesCbcEType.java:154)
        at sun.security.krb5.internal.crypto.DesCbcCrcEType.decrypt(DesCbcCrcEType.java:30)
        at sun.security.krb5.internal.crypto.DesCbcCrcEType.decrypt(DesCbcCrcEType.java:77)
        at sun.security.krb5.EncryptedData.decrypt(EncryptedData.java:168)
        at sun.security.krb5.KrbAsRep.<init>(KrbAsRep.java:87)
        at sun.security.krb5.KrbAsReq.getReply(KrbAsReq.java:449)
        at sun.security.krb5.Credentials.sendASRequest(Credentials.java:406)
        at sun.security.krb5.Credentials.acquireTGT(Credentials.java:355)
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:662)
        ... 25 more

login.conf simply contains:

pgjdbc {
   com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true;
};

Jdbc.java is just

import java.sql.*; // import the JDBC
import java.util.*;

public class Jdbc {
    public static void main (String[] args) {
      try {
        Class.forName("org.postgresql.Driver"); // Load the PostgreSQL
JDBC driver

        // Connect to the database

        Properties props = new Properties();
        props.setProperty("user", "koczan");
        props.setProperty("password", "fakepw");
//        props.setProperty("ssl", "true");
        Connection conn =
DriverManager.getConnection("jdbc:postgresql://mitchell.cs.wisc.edu:5432/postgres",
props);

        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery("select datname from
pg_database order by 1");
        while (rs.next()) {
            System.out.print("Database name returned: ");
            System.out.println(rs.getString(1));
        }
        rs.close();
        st.close();

      } catch (Throwable ex) {
        System.err.println("Uncaught exception in main...");
        ex.printStackTrace();
      }
    }
}

Am I forgetting to set something up? I know that GSSAPI in JDBC is
unsupported currently but it would be really nice to offer it even in
a beta capacity. Thanks.

Peter

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: "Konrad Machlowski"
Дата:
Сообщение: Passing arrays
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: GSSAPI/KRB5 and JDBC (again)