2

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

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

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

春季论坛主题建议覆盖 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 删除(可能是因为这个问题:https ://jira.springsource.org/browse/SEC-1241 )

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

有人可以指出正确的前进方向吗?

4

1 回答 1

1

spring-security 团队在 spring 论坛上回答了这个问题。看到这个: http: //forum.springsource.org/showthread.php?128480-Redirecting-to-original- (unauthenticated-page)-after-spring-security-openid-authentic

于 2012-09-20T19:00:40.693 回答