我有一個MS SQL Server RDBMS,它使用Kerberos來驗證用戶。JDBC MS SQL Server Kerberos驗證
從Windows機器上,如果我將db url設置爲jdbc:sqlserver:// DB_NAME:DB_PORT; integratedSecurity = true並將相應的sqljdbc_auth.dll添加到路徑中,一切正常。
但是我想使用Java Kerberos認證,以便能夠在* nix機器中使用相同的代碼。
所以我的數據庫URL變成的jdbc:SQLSERVER:// DB_NAME:DB_PORT; integratedSecurity = TRUE; authenticationScheme = JavaKerberos
當我運行的代碼我得到以下異常:
Exception in thread "main" javax.security.auth.login.LoginException: Unable to obtain Princpal Name for authentication
at com.sun.security.auth.module.Krb5LoginModule.promptForName(Krb5LoginModule.java:796)
at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:667)
at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:580)
有誰知道爲什麼會發生這種情況?我必須補充說我正在使用jdbc驅動程序提供的默認Krb5LoginModule。
預先感謝您。
您使用的MS JDBC或Open JTDS? – gbn
@gbn我正在使用MS JDBC。 sqljdbc4.jar – nikkatsa
@nikkatsa你找到解決方案嗎? –