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;
}
}
但是我收到以下错误:
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-mvc,spring,twitter,spring-social 来源: https://codeday.me/bug/20190613/1231347.html