如何在更改密码后以编程方式验证用户身份?使用j_security_check进行基于表单的身份验证用于登录。更改密码后,用户将被重定向到主页(这是必需的),但是当提交屏幕或单击链接/按钮时,用户将被重定向回登录页面。我认为这是因为用于在后台进行身份验证的密码仍然是旧密码。
答案 0 :(得分:0)
如果你能得到HttpServletRequest
(这是JSF中的一个例子),你可以从那里打电话给login()
。
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
request.login(username, password);
奖励信息:要将当前用户注销,您可以在invalidate()
上致电HttpSession
:
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession)context.getExternalContext().getSession(true);
session.invalidate();