3

在我的 Spring Boot 应用程序中,我使用两个数据库 Oracle 和 Sybase,并使用 Kerberos 连接数据库。当我一次对其中一个进行kerberized时效果很好,但是当我尝试同时使用它们时,我遇到了一个例外。

.yml文件中两个数据库的数据源如下:

database:
oracleDatasource:
DriverclassNqme:*oracle Driver*
JdbcUrl: JdbcUrl
data-source-properties:
 oracle.net.kerberos5_cc_name:*location of cache File*
 oracle.net.authentication_services: (KERBEROS5)
 oracle.net.kerberos5_mutual_authentication: true

sybaseDataSource:
driverClassName: com.sybase.jdbc4.jdbc.SybDriver
jdbcUrl: SyabaseDataBaseUrl
data-source-properties:
 REQUEST_KERBEROS_SESSION: true
 SERVICE_PRINCIPLE_NAME: principlename

我有一个jass.confSybase 文件

com.sun.security.jggs.initiate{
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
ticketCache="path of my sybasecache File"
};

当我使用以下 VM 参数运行我的应用程序时,

-Djava.security.krb5.conf="path of my conf file"
-Djava.security.auth.login.config="path of my jass.conf file"
-Djavax.security.auth.useSubjectCredsOnly=false

当时我得到以下 Oracle 数据源的异常

Caused by:com.zaxerr.hikari.pool.HikariPool$InitializationException:Failed to initialize the pool:EncryptionKey:Key byte can not be null

当我当时删除了-Djavax.security.auth.useSubjectCredsOnly=falsefrom 参数时,得到了 SybaseDataSource 的以下异常,

ERROR IdTableHelper unable to obtain jdbc Connection
java.sql.SQLException:JZ006:caught IOException:java.net.ConnectException:Connection timed out"

任何人都可以帮我解决这个问题,或者我如何在 Sybase 的数据源属性中使用 Kerberos 缓存文件,就像 Oracle 一样。必须感谢任何帮助建议。提前致谢。

4

0 回答 0