1

我正在尝试运行 socialauth spring 示例(http://code.google.com/p/socialauth/wiki/SpringSample),但是当我尝试与 Facebook 连接时,来自 SuccessController.java 的 socialAuthTemplate.getSocialAuthManager() 调用返回空值。我无法进行任何调试以找出我做错了什么,因为它是来自 sociaauth.jar 的函数,我无权访问它的代码。以前有人遇到过这个问题吗?我应该怎么办?我唯一的猜测是我没有正确配置项目(我没有包含一些库或smth)。我正在使用netbeans。

这是代码:

@Controller
public class SuccessController {

    @Autowired
    private SocialAuthTemplate socialAuthTemplate;

    @RequestMapping(value = "/authSuccess")
    public ModelAndView getRedirectURL(final HttpServletRequest request)
                    throws Exception {
            ModelAndView mv = new ModelAndView();
            List<Contact> contactsList = new ArrayList<Contact>();
            SocialAuthManager manager = socialAuthTemplate.getSocialAuthManager();     //returns null
            AuthProvider provider = manager.getCurrentAuthProvider();
            contactsList = provider.getContactList();
            if (contactsList != null && contactsList.size() > 0) {
                    for (Contact p : contactsList) {
                            if (!StringUtils.hasLength(p.getFirstName())
                                            && !StringUtils.hasLength(p.getLastName())) {
                                    p.setFirstName(p.getDisplayName());
                            }
                    }
            }
            mv.addObject("profile", provider.getUserProfile());
            mv.addObject("contacts", contactsList);
            mv.setViewName("/jsp/authSuccess.jsp");

            return mv;
    }  
4

1 回答 1

0

你能在你的 spring 配置文件中验证 socialAuthTemplate 类的范围吗?它应该具有会话范围。

 <bean id="socialAuthTemplate" class="org.brickred.socialauth.spring.bean.SocialAuthTemplate" scope="session">
    <aop:scoped-proxy/>
</bean>

如果您需要 socialauth 的代码库,您可以从以下位置下载 socialauth-java-sdk-2.3.zip 文件。它包含所有源代码以及示例。

http://code.google.com/p/socialauth/downloads/list

于 2012-08-14T18:04:37.953 回答