What is the better way to login with apache shiro and redirect to the last page visited?

I only have this:

SecurityUtils.getSubject().login(new UsernamePasswordToken(username, password, rememberMe);
有帮助吗?

解决方案

You can get the last visited page by WebUtils.getAndClearSavedRequest(). You can redirect to it using standard ExternalContext#redirect() or OmniFaces Faces#redirect() which both supports redirecting JSF ajax requests.

SecurityUtils.getSubject().login(new UsernamePasswordToken(username, password, rememberMe));

SavedRequest savedRequest = WebUtils.getAndClearSavedRequest(Faces.getRequest());

if (savedRequest == null) {
    Faces.redirect("homepage.xhtml");
} else {
    Faces.redirect(savedRequest.getRequestUrl());
}

其他提示

I think that a more straight forward approach is:

SecurityUtils.getSubject().login(new UsernamePasswordToken(username, password, rememberMe));
WebUtils.redirectToSavedRequest(request, response, "login.xhtml");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top