Spring Social - Facebook登录404错误

时间:2012-07-31 12:30:33

标签: spring spring-mvc spring-security facebook-oauth spring-social

我的应用程序中有春季安全登录的春季3.1。我正在尝试使用spring social添加facebook登录。 它进入Facebook登录页面,但登录后它会引发404错误。我在URL中有这个:

http://localhost:8080/TestProject/signin?error=provider#_=_

这是我的春季社交配置:

<bean class="org.springframework.social.connect.web.ProviderSignInController">
<!-- relies on by-type autowiring for the constructor-args -->    
<constructor-arg ref="signInAdapter" />
</bean>

<bean id="connectionFactoryLocator" 
  class="org.springframework.social.connect.support.ConnectionFactoryRegistry">
<property name="connectionFactories">
    <list>
        <bean class="org.springframework.social.facebook.connect.FacebookConnectionFactory">
            <constructor-arg value="${fb.id}" />
            <constructor-arg value="${fb.passwrd}" />               
        </bean>
    </list>
</property>
</bean>

<bean id="connectionRepository" factory-method="createConnectionRepository" 
  factory-bean="usersConnectionRepository" scope="request">
<constructor-arg value="#{request.userPrincipal.name}" />
<aop:scoped-proxy proxy-target-class="false" />
</bean>

<bean id="signInAdapter" class="com.Test.social.SimpleSignInAdapter"/>

<bean id="usersConnectionRepository" 
  class="org.springframework.social.connect.jdbc.JdbcUsersConnectionRepository">
<constructor-arg ref="dataSource" />
<constructor-arg ref="connectionFactoryLocator" />
<constructor-arg ref="textEncryptor" />
</bean>

<bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors" 
        factory-method="noOpText" />
 </beans> 

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我也突然碰巧重定向到signin?error=provider#_=_

原因是在此“错误消息”反复发生之前,我更新了本地JDK安装。通过这个新的JDK安装,对我的Java安装安全设置的任何更改都被重置为“全新安装默认值”。特别是,我手动安装的UnlimitedJCEPolicy不再可用。 重新安装UnlimitedJCEPolicy解决了我的问题

在我的特定情况下,我没有使用noOpText() TextEncryptor,而是使用queryableText(..) TextEncryptor

答案 1 :(得分:0)

您使用的是什么样的春季社交版? (必须是1.0.X)

你创建了一个facebook应用程序吗? (您需要在FacebookConnectionFactory构造函数中提供应用程序密钥/机密)。您似乎正在使用Facebook用户/密码。