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 楼答案
确保keytab文件位于当前目录中,而不是classpath