代码之家  ›  专栏  ›  技术社区  ›  Jon Onstott

jaas loginmodule login()和commit()成功,但用户未登录

  •  0
  • Jon Onstott  · 技术社区  · 15 年前

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

    任何想法都会受到极大的赞赏。谢谢!

    附加信息

    还有,我打电话之后 loginContext.login() 在前端,呼叫 loginContext.getSubject().getPrincipals() 为刚登录的用户提供正确的主体和角色列表。

    我正在使用Tomcat6.0.29作为服务器。

    2 回复  |  直到 15 年前
        1
  •  1
  •   JoseK    15 年前

    嗯,黑暗中的一枪

    您是否尝试过在策略文件中这样授予权限?

    grant codeBase "file:/myCustomModule.jar" {
      permission javax.security.auth.AuthPermission "modifyPrincipals";
      permission javax.security.auth.AuthPermission "modifyPublicCredentials";
      permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
    };
    
        2
  •  0
  •   Jon Onstott    15 年前

    我尝试在Tomcat中进行编程登录,即使登录模块正在运行,容器也没有收到身份验证。我的解决方案是使用HTML表单进行身份验证,并在操作时进行“j_security_check”。