在spring security openid身份验证之后重定向到原始(未经身份验证的页面)

时间:2012-07-16 03:37:13

标签: spring-security openid

我已使用此处提供的示例实现了spring security openid集成:OpenId+Spring Integration

集成工作正常。当我请求受保护的资源时,我会被重定向到登录页面,经过身份验证后,我会自动重定向到受保护的资源。

但是,如果我在一个不受保护的页面上(类似于此处描述的情况:http://forum.springsource.org/showthread.php?95317-Redirect-to-original-page-after-login-success-failure),我点击登录按钮..登录后我会被重定向到主页。我想重定向到我点击登录按钮的页面。

Spring论坛主题建议覆盖buildReturnToUrl方法。我通过它调试了。它总是生成以下形式的returnToURL:

http://localhost:8080/listocal/j_spring_openid_security_check 

op和Rob Winch之间有一些幕后交流,我不确定op是如何覆盖它的。

或者,我尝试使用以下代码创建另一个过滤器:

public void doFilter(....) {
...
DefaultSavedRequest savedRequest = new DefaultSavedRequest((HttpServletRequest) request, new PortResolverImpl());

((HttpServletRequest)request).getSession().setAttribute("SPRING_SECURITY_SAVED_REQUEST", savedRequest);

}

如果此过滤器在OpenIDAuthenticationFilter之前运行,则RequestCacheAwareFilter会删除savedrequest(可能是因为此问题:https://jira.springsource.org/browse/SEC-1241

如果此过滤器在OpenIDAuthenticationFilter之后运行,那么我确实遇到了在每个请求之后连接post参数的问题。

有人能指出正确的方法吗?

1 个答案:

答案 0 :(得分:1)