プロバイダー (Twitter、Facebook など) に接続すると、Spring Social のデフォルトの動作をオーバーライドして "connect/{providerId} Connected" にリダイレクトしようとしています。
したがって、メソッドprotected 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
しかし、次のエラーが表示されます。
原因: java.lang.IllegalStateException: あいまいなマッピングが見つかりました。'org.springframework.social.connect.web.ConnectController#0' Bean メソッド public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.connect(java.lang.String) をマップできません,org.springframework.web.context.request.NativeWebRequest) を {[/connect/{providerId}] に、methods=[POST],params=[],headers=[],consumes=[],produces=[], custom=[]}: 既に 'customConnectController' Bean メソッド public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.connect(java.lang.String,org.springframework. web.context.request.NativeWebRequest) がマップされました。
どなたかご指導お願いします。私の要件は次のとおりです。 1. ユーザーがソーシャル アカウント (Twitter、Facebook など) に接続した後 2. ビジネス ロジックを実行する 3. /foo/bar ページにリダイレクトする
助けてください。