Spring security + spring社交xml配置

时间:2016-10-21 11:01:46

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

我试图找出Spring Social的工作原理,我决定通过编写示例应用程序来学习它。

该应用程序的核心是基于appfuse quicksart archetype(多模块,Spring MVC),它已经预先配置了基本的Spring Security。

我使用this tutorial来描述Spring社交与Spring Security的整合。但是,该示例使用基于java的Spring Social配置 - 据我所知,官方文档也主要是基于java的。这是我的social.xml

    <!-- Ensures that configuration properties are read from a property file -->
    <context:property-placeholder location="classpath:*social.properties"/>

    <!--
        Configures FB support.
    -->
    <facebook:config app-id="${facebook.app.id}" app-secret="${facebook.app.secret}" />

    <social:jdbc-connection-repository data-source-ref="dataSource" connection-signup-ref="accountConnectionSignup"/>


    <bean id="userIdSource" class="org.springframework.social.security.AuthenticationNameUserIdSource" />

    <!--
       This bean is custom account connection signup bean for your registeration logic.
        -->
    <bean id="accountConnectionSignup" class="com.yoso.socialApp.service.impl.ConnectionSignupManagerImpl"></bean>

    <!--
        This bean manages the connection flow between the account provider and
        the example application.
    -->
    <bean id="connectController" class="org.springframework.social.connect.web.ConnectController" autowire="constructor">
        <constructor-arg index="0" ref="connectionFactoryLocator"/>
        <constructor-arg index="1" ref="connectionRepository"/>
    </bean>

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

xml配置应与上述教程中的SocialContext类似,并基于此SO question

security.xml文件未更改,我只添加了这一行

<intercept-url pattern="/auth" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER" />

html代码。

我还在登录页面添加了一个简单的fb按钮,该按钮重定向到/auth/facebook并添加了对social.xml的引用到web.xml。现在,问题在于每当我点击fb按钮时,都没有任何反应 - 页面只是刷新自己。没有错误,没有消息,甚至在服务器控制台中都没有。

另外,我不确定是否应该为/auth*创建一些控制器,因为根据documentationSocialAuthenticationFilter应该为我做。

1 个答案:

答案 0 :(得分:0)

显然,它实际上一直有效。我在非匿名窗口的浏览器中测试它,我同时登录到FB。因此,应用程序只是将我重定向到登录页面(这在配置中有点错误,因为它应该将我重定向到注册页面。)

经验教训。