Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过JAAS将用户手动登录到JBoss WIldfly_Java_Jboss_Jaas - Fatal编程技术网

Java 通过JAAS将用户手动登录到JBoss WIldfly

Java 通过JAAS将用户手动登录到JBoss WIldfly,java,jboss,jaas,Java,Jboss,Jaas,我正在尝试执行手动登录。我的意图是通过JAX-RS调用登录某人,但要在标准会话中登录。这样,后续javascript调用和java调用都将看到相同的主题、主体等。这都是在使用Picketlink的SSO上下文中发生的,我需要向用户显示他当前的登录状态,并允许他在后台登录 我创建了自己的LoginModule,它可以完美地与j_security配合使用。 我创建了一个JAX-RS资源,用于启动LoginContext并登录用户。我的LoginModule在后台被询问,并且登录被完美地执行。几乎因为

我正在尝试执行手动登录。我的意图是通过JAX-RS调用登录某人,但要在标准会话中登录。这样,后续javascript调用和java调用都将看到相同的主题、主体等。这都是在使用Picketlink的SSO上下文中发生的,我需要向用户显示他当前的登录状态,并允许他在后台登录

我创建了自己的LoginModule,它可以完美地与j_security配合使用。 我创建了一个JAX-RS资源,用于启动LoginContext并登录用户。我的LoginModule在后台被询问,并且登录被完美地执行。几乎因为有一个小问题,登录与http请求或会话没有关联

@POST @Path("login")
public LoginResponse login(LoginForm loginForm, @Context HttpServletRequest request) throws LoginException{
    LoginResponse ret = new LoginResponse();
    LoginContext loginContext = new LoginContext("idp", new WidgetCallBackHandler(loginForm));
    System.out.println("User principal before: "+request.getUserPrincipal());
    try{
        loginContext.login();
    }catch(LoginException e){
        ret.setMessage("Login failed: "+e.getMessage());
    }

    Subject subject = loginContext.getSubject();
    System.out.println("Logged in subject: "+subject);

    System.out.println("User principal after: "+request.getUserPrincipal());
    System.out.println("Login executed");

    ret.setState(getLoginState(request));
    return ret;
}
前后两个主体都为空。因此,我能够正确地对用户进行身份验证,但这完全没有意义,因为我无法将会话与登录的主题相关联

我读到在以前的JBoss版本中有一个类WebAuthenticator,这是一条追求的道路吗


提前感谢

好的,解决方案太简单了,很遗憾我之前没有找到它。提示出现在以下链接中:

Servlet3.0已经实现了

request.loginusername,密码

方法,它完成了我所需要的一切