我希望用户在身份验证后重定向到他们请求的最后一个页面,但是对于多个请求(受保护的和未受保护的),它不起作用。我该如何解决?
我重写了SavedRequestAwareAuthenticationSuccessHandler的onAuthenticationSuccess方法,它可以正常工作,但是我有一种情况-当用户尝试打开受保护的url时,他获得了登录表单,但暂时没有登录,而是打开了不受保护的列表(通常)链接。之后,他单击登录按钮,通过身份验证,然后将他重定向回第一个受保护的网址(但我希望将他重定向到最后一个不受保护的网址。
我要做这样的事情:
public class myHandler extends SavedRequestAwareAuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(
HttpServletRequest request,
HttpServletResponse response,
Authentication authentication
) throws IOException, ServletException {
setUseReferer(
!request.getHeader("referer").contains("/login")
);
super.onAuthenticationSuccess(request, response, authentication);
}
}
例如:
用户尝试/ administration
获取/登录
点击/ about_us链接
点击“登录”按钮,然后转到/ login
被重定向到/ administration(但我希望他回到/ about_us)
我该怎么办?