如何重定向到上一个请求的页面,但是SavedRequestAwareAuthenticationSuccessHandler重定向到上一个受保护的页面?

时间:2019-06-04 16:38:06

标签: authentication spring-security

我希望用户在身份验证后重定向到他们请求的最后一个页面,但是对于多个请求(受保护的和未受保护的),它不起作用。我该如何解决?

我重写了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)

我该怎么办?

0 个答案:

没有答案