JAAS LoginModule login()和commit()成功,但用户未登录

时间:2010-09-27 22:55:41

标签: authentication tomcat java-ee jaas

我已经实现了一个LoginModule来执行一些自定义身份验证,并使用LoginContext类的login()方法调用身份验证。登录模块的login()和commit()方法被成功调用,但不是能够使用Web应用程序,而是立即将其发送回登录页面。 request.getUserPrincipal()为null,以及request.getRemoteUser()。

任何想法都将不胜感激。谢谢!

附加信息

此外,在我在前端调用loginContext.login()之后,调用loginContext.getSubject().getPrincipals()为我提供了刚刚登录的用户的正确的主体和角色列表。

我正在使用Tomcat 6.0.29作为我的服务器。

2 个答案:

答案 0 :(得分:1)

在黑暗中拍摄

您是否尝试过像这样的政策文件中的权限

grant codeBase "file:/myCustomModule.jar" {
  permission javax.security.auth.AuthPermission "modifyPrincipals";
  permission javax.security.auth.AuthPermission "modifyPublicCredentials";
  permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
};

答案 1 :(得分:0)

我试图在Tomcat中进行编程登录,即使登录模块正在运行,容器也没有接收到身份验证。我的解决方案是使用带有" j_security_check"的HTML表单进行身份验证。这是它的行动。