Hi
My code works great with jdk 1.8, 11, 17, 21. I can connect with a kerberos ticket and the thin driver.
With jdk25, it fails with getSubject is not supported
import java.sql.*;
import java.util.Properties;
import java.security.Security;
import java.sql.*;
import javax.net.ssl.*;
import oracle.net.ano.AnoServices;
import oracle.jdbc.OracleConnection;
public class TestConn {
public static void main(String[] args) throws SQLException {
String url = "jdbc:oracle:thin:@srv01.example.com:1521/db01.example.com";
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
Properties props = new Properties();
props.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES, "( " + AnoServices.AUTHENTICATION_KERBEROS5 + " )");
props.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL, "true");
System.setProperty("java.security.krb5.conf","/usr/lib/oracle/network/krb/krb5.conf");
ResultSet res = DriverManager.getConnection(url, props).prepareCall("select 'OK!' txt from dual").executeQuery();
res.next();
System.out.println(res.getString("TXT"));
}
}
Compile
/usr/lib/jvm/java-25/bin/javac -cp /usr/lib/oracle/23/client64/lib/ojdbc17.jar:/usr/lib/oracle/23/client64/lib/oraclepki.jar TestConn.java
Run using the latest driver ojdbc17 version 23.26.1 and openjdk 25.0.2 on RHEL10
/usr/lib/jvm/java-25/bin/java -version
openjdk version "25.0.2" 2026-01-20 LTS
OpenJDK Runtime Environment (Red_Hat-25.0.2.0.10-2) (build 25.0.2+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-25.0.2.0.10-2) (build 25.0.2+10-LTS, mixed mode, sharing)
$ /usr/lib/jvm/java-25/bin/java -jar /usr/lib/oracle/23/client64/lib/ojdbc17.jar
==============================================================
=== ___ _ _ ____ ____ ____ ===
== / _ \ _ __ __ _ ___| | ___ | | _ \| __ ) / ___| ==
= | | | | '__/ _` |/ __| |/ _ \ _ | | | | | _ \| | =
== | |_| | | | (_| | (__| | __/ | |_| | |_| | |_) | |___ ==
=== \___/|_| \__,_|\___|_|\___| \___/|____/|____/ \____| ===
=== ===
========================================= v.23.26.1.0.0 =====
Oracle 23.26.1.0.0 JDBC 4.3 debug compiled with javac 17.0.10 on Fri_Jan_02_00:55:46_PST_2026
/usr/lib/jvm/java-25/bin/java -cp /usr/lib/oracle/23/client64/lib/ojdbc17.jar:/usr/lib/oracle/23/client64/lib/oraclepki.jar:. TestConn
Exception in thread "main" java.lang.UnsupportedOperationException: getSubject is not supported
at java.base/javax.security.auth.Subject.getSubject(Subject.java:277)
at oracle.net.ano.AuthenticationService.activateAuthenticatorPhase2(AuthenticationService.java:524)
at oracle.net.ano.Ano.negotiation(Ano.java:275)
at oracle.net.ns.NSProtocol.initializeAno(NSProtocol.java:592)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:373)
at oracle.jdbc.driver.T4CConnection.connectNetworkSessionProtocol(T4CConnection.java:3908)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:1108)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1211)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:106)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:909)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:707)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:613)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:160)
at TestConn.main(TestConn.java:17)
Is this unsupported?
It works great with jdk21
klist
Ticket cache: FILE:/tmp/krb5cc_20629
Default principal: laurentsch@EXAMPLE.COM
Valid starting Expires Service principal
02/06/2026 16:18:59 02/07/2026 02:18:59 krbtgt/EXAMPLE.COM@EXAMPLE.COM
renew until 02/07/2026 16:18:55
/usr/lib/jvm/java-21/bin/javac -version
javac 21.0.10
/usr/lib/jvm/java-21/bin/javac -cp /usr/lib/oracle/23/client64/lib/ojdbc17.jar:/usr/lib/oracle/23/client64/lib/oraclepki.jar TestConn.java
/usr/lib/jvm/java-21/bin/java -version
openjdk version "21.0.10" 2026-01-20 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.10.0.7-1) (build 21.0.10+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.10.0.7-1) (build 21.0.10+7-LTS, mixed mode, sharing)
/usr/lib/jvm/java-21/bin/java -cp /usr/lib/oracle/23/client64/lib/ojdbc17.jar:/usr/lib/oracle/23/client64/lib/oraclepki.jar:. TestConn
OK!
Thanks
Laurent