문제

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