我正在尝试为JAAS做一些教程并遇到一个奇怪的问题。当我在我的IDE中,一切正常,我被问到用户名和密码
LoginContext lc = new LoginContext("JaasSample", new TextCallbackHandler());
lc.login();
但是如果我从jar中运行同一个类,我只会被要求输入用户名,然后我立即得到一个例外(不要求输入密码):
[vmuser@VMServer1 jaasacn]$ sh run.sh
Kerberos username [vmuser]: user1
Kerberos password for user1: Authentication failed:
Security Exception
javax.security.auth.login.LoginException: Security Exception
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:848)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
at javax.security.auth.login.LoginContext.login(LoginContext.java:595)
at JaasAcn.main(JaasAcn.java:29) Caused by: java.lang.SecurityException
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:849)
... 7 more
可能是什么问题?!
提前谢谢
答案 0 :(得分:0)
当我尝试从部署在Jboss中的应用程序登录时,我遇到了确切的问题和异常。当我从IDE运行时,jaas登录模块工作正常,但是当它在Jboss中运行时失败了。经过一些研究,我发现实际的jaas.config文件被忽略了,配置Jaas模块的唯一方法是使用Jboss standalone.xml文件(在我的例子中)。在standalone.xml中声明模块后,一切都按预期工作。
无论如何,我花了一些时间来弄清楚安全例外是什么。
在你的情况下一定有一些配置问题..我希望这有帮助