使用Spring Social和Spring MVC时,我试图在连接到社交提供者时使用RedirectView,并且必须缺少一些东西,并且无法成功获得与LinkedIn的成功连接过程。Http POST方法和Spring MVC RedirectView
这里是2种控制器方法:第一种用作预期:基于服务提供商的选择从用户,它检测到它没有连接到链接在直通的sp.isconnected()
呼叫,并且当不重定向到一个观点,即由第二种方法控制以启动链接连接。
第二种方法设置适当的权限参数并重定向到合适的春季社交连接URL(URIs.SPRINGLISIGNIN =“/ connect/linkedin”),但Spring Social ConnectController在此阶段期望POST方法,而我不管理了解如何通过RedirectView传递它。我期待从第一个控制器方法开始的POST方法将被执行到第二个,但事实并非如此。在lisgnin方法的调试模式中,request.getMethod()显示一个GET值。
@RequestMapping(value = Uris.SPCHOICE, method = RequestMethod.POST)
public RedirectView Spchoice (@RequestParam("sp") String sp, Model model) {
ServiceProviders spasenum = ServiceProviders.valueOf(sp);
RedirectView toReturn;
SPConnectionRetriever spResolver=null;
switch (spasenum) {
case FACEBOOK :
spResolver = FBConnectionRetriever;
break;
case LINKEDIN :
spResolver = LIConnectionRetriever;
break;
}
SecurityContext.setCurrentSpResolver(spResolver);
if (spResolver.isconnected())
toReturn = new RedirectView(Uris.MAIN, true);
else
toReturn = new RedirectView(spResolver.getConnectUrl(), true);
return toReturn;
}
这里是第二个方法:
@RequestMapping(value = Uris.SIGNINLI)
public RedirectView liSignin(HttpServletRequest request, HttpServletResponse response) {
request.setAttribute("scope", "r_fullprofile,r_network");
return new RedirectView(Uris.SPRINGLISIGNIN, true);
您需要连接到浏览器提交POST请求。 –
好的。如果浏览器端没有任何用户操作,我该怎么做? –