有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Kerberos:keytab文件javax中<user>的登录失败。安全auth。登录。LoginException:无法从用户处获取p密码

我有一个java程序,它使用kerberos密钥表文件安全地登录到我的hadoop服务器。我使用了下面的代码来配置一切,它在EclipseIDE中工作得非常好,但是当我通过Maven从中创建一个可执行jar并在命令行上运行时,它就不工作了。我看到它能够读取keytab文件,但无法检索指定用户id的密码,因此出现了错误。有什么建议吗

Configuration conf = new Configuration();
conf.set("hadoop.security.authentication", "kerberos");
UserGroupInformation.setConfiguration(conf);
URL file = this.getClass().getClassLoader().getResource("file.keytab");
UserGroupInformation.loginUserFromKeytab("xyzUser", file.getPath());

我的keytab文件保存在根文件夹中,我已将其添加到pom中。xml作为资源标记。下面是我正在测试jar文件的命令:

java -jar myjar-0.0.1-SNAPSHOT-jar-with-dependencies.jar

共 (1) 个答案

  1. # 1 楼答案

    确保keytab文件位于当前目录中,而不是classpath