无法使用Spring JPA从用户Kerberos错误获取密码

发布于 2025-01-21 12:54:37 字数 1452 浏览 2 评论 0原文

我正在尝试使用Spring JPA使用Kerberos连接到MSSQL DB。我使用:

ktab -k <keytabPath> -a <name>@<domain>

创建jaas.conf文件:

SQLJDBCDriver {
    com.sun.security.auth.module.Krb5LoginModule
    required
    client=TRUE
    doNotPrompt=true
    debug=true
    useKeyTab=true
    storeKey=true
    keyTab="<keytabName>" 
    principal="<name>@<domain>"
};

keytabjaas.conf文件中的文件位于资源文件夹

App.Properties:

spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.show_sql=true
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:<url>\\<instance>:<port>;databaseName=<dbName>;authenticationScheme=JavaKerberos;integratedSecurity=true;domain=<domain>

设置VM参数:

-Djavax.net.ssl.trustStore=<path_to_cacerts>
-Djava.security.krb5.conf=<path_to_krb5>
-Djava.security.auth.login.config=<path_to_jaas>
-Duser.name=<name>
-Djavax.security.auth.useSubjectCredsOnly=true
-Djava.security.krb5.realm=<domain>
-Djava.security.krb5.kdc=<domain>
-Dsun.security.krb5.debug=true
-Djavax.net.debug=ssl

但是我得到:无法从用户错误中获取密码。怎么了 ?似乎设置是正确的。我可以使用Intellij数据库窗口(使用Windows凭据选项)连接到数据库。

I am trying to use Spring JPA to connect to mssql db using kerberos. I generated keytab using:

ktab -k <keytabPath> -a <name>@<domain>

created jaas.conf file:

SQLJDBCDriver {
    com.sun.security.auth.module.Krb5LoginModule
    required
    client=TRUE
    doNotPrompt=true
    debug=true
    useKeyTab=true
    storeKey=true
    keyTab="<keytabName>" 
    principal="<name>@<domain>"
};

both keyTab and jaas.conf files are in resource folder

app.properties:

spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.show_sql=true
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:<url>\\<instance>:<port>;databaseName=<dbName>;authenticationScheme=JavaKerberos;integratedSecurity=true;domain=<domain>

set the VM parameters:

-Djavax.net.ssl.trustStore=<path_to_cacerts>
-Djava.security.krb5.conf=<path_to_krb5>
-Djava.security.auth.login.config=<path_to_jaas>
-Duser.name=<name>
-Djavax.security.auth.useSubjectCredsOnly=true
-Djava.security.krb5.realm=<domain>
-Djava.security.krb5.kdc=<domain>
-Dsun.security.krb5.debug=true
-Djavax.net.debug=ssl

yet i am getting: Unable to obtain password from user error. What is wrong ? It seems the set up is correct. I can connect to the database using intellij database window ( using windows credential option ).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文