java – 覆盖Spring Social中的默认重定向视图

我试图覆盖Spring Social的默认行为,一旦连接到提供商(Twitter,Facebook等),就会重定向到“connect / {providerId} Connected”.

所以我试图通过重写受保护的java.lang.String connectedView方法来覆盖默认行为(java.lang.String providerId)

所以我已经将ConnectController子类化并尝试覆盖:

@Controller
public class CustomConnectController extends ConnectController{

    @Inject
    public CustomConnectController(
            ConnectionFactoryLocator connectionFactoryLocator,
            ConnectionRepository connectionRepository) {
        super(connectionFactoryLocator, connectionRepository);
    }


    @Override
    protected String connectedView(String providerId){
        //Do some logic

        return "redirect:/foo/bar;
    }

}

请参阅控制器类的文档:http://static.springsource.org/spring-social/docs/1.0.x/api/org/springframework/social/connect/web/ConnectController.html

但是我收到以下错误:

Caused by: java.lang.IllegalStateException: Ambiguous mapping found.
Cannot map
‘org.springframework.social.connect.web.ConnectController#0’ bean
method public org.springframework.web.servlet.view.RedirectView
org.springframework.social.connect.web.ConnectController.connect(java.lang.String,org.springframework.web.context.request.NativeWebRequest)
to
{[/connect/{providerId}],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}:
There is already ‘customConnectController’ bean method public
org.springframework.web.servlet.view.RedirectView
org.springframework.social.connect.web.ConnectController.connect(java.lang.String,org.springframework.web.context.request.NativeWebRequest)
mapped.

任何人都可以指导.
我的要求如下:
1.用户连接社交帐户(Twitter,Facebook等)后
2.做一些业务逻辑
3.重定向到/ foo / bar页面

请帮忙.

最佳答案
好的,我自己找到了解决方案.
为每个人发布答案,以便任何挣扎于愚蠢事情的人都可能受益:

实际上我在配置和配置中配置了ConnectController.现在,自定义控制器正在踩着那个&因此它说已经映射了.从配置中删除配置可以解决问题.

在我的情况下删除以下代码:

<bean class="org.springframework.social.connect.web.ConnectController">
        relies on by-type autowiring for the constructor-args
        <property name="applicationUrl" value="${application.url}" />
    </bean> 

转载注明原文:java – 覆盖Spring Social中的默认重定向视图 - 代码日志