1

我已经覆盖AuthenticationSuccessHandler,但我想保持引用重定向行为成功。

我看到默认处理程序使用$request->headers->get('Referer'),我尝试在我的自定义处理程序上做同样的事情:

if (($targetUrl = $request->headers->get('Referer'))
        && $targetUrl !== $this->options['login_path']) {
    die($targetUrl);

返回我的登录路径:

http://my_host/login

而不是原来的请求。我认为这是因为防火墙先前已将用户重定向到登录页面。

默认处理程序可以很好地重定向我,所以我想知道为什么我的没有。

如何从我的自定义 AuthenticationSuccessHandler 获取原始请求

4

1 回答 1

2

你应该看看这里determineTargetUrl就是你要的。

补充:它在会话中保存返回路径,然后恢复它(第 98 行)。如果用户会话中没有返回路径,则处理程序采用Referer。

于 2013-04-29T11:38:52.147 回答