0

Spring Social と Spring Security を使用してユーザーを認証し、Web アプリでローカル アカウントを自動的に作成しています。認証用に OAuth2 を提供するにはどうすればよいscopeですか?

spring-social-samplesでは、どこに行くべきかわかりませんscope

<bean id="socialAuthenticationFilter" class="org.springframework.social.security.SocialAuthenticationFilter"
    c:_0-ref="authenticationManager"
    c:_1-ref="userIdSource"
    c:_2-ref="usersConnectionRepository"
    c:_3-ref="connectionFactoryLocator"
    p:signupUrl="/spring-social-showcase/signup"
    p:rememberMeServices-ref="org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices#0" />

<bean id="socialAuthenticationProvider" class="org.springframework.social.security.SocialAuthenticationProvider"
    c:_0-ref="usersConnectionRepository"
    c:_1-ref="socialUsersDetailService" />

の特定の使用例は、ユーザーが Facebook で認証され、ローカル アカウントを作成するためscopeにユーザーの Facebook メール ( ) を取得できるようにすることです。scope="email"

4

2 に答える 2

8

scope構成では、 のプロパティとして指定する必要がありますFacebookAuthenticationService。これは、への呼び出しを処理するサービスです。auth/facebook

XML 構成では、次の代わりに:

<facebook:config app-id="${facebook.clientId}" app-secret="${facebook.clientSecret}"/>

使用する:

<bean id="connectionFactoryLocator" class="org.springframework.social.security.SocialAuthenticationServiceRegistry">
    <property name="authenticationServices">
        <list>
            <bean class="org.springframework.social.facebook.security.FacebookAuthenticationService">
                <constructor-arg value="${facebook.clientId}" />
                <constructor-arg value="${facebook.clientSecret}" />
                <!-- Important: The next property name changed from "scope" to "defaultScope" in 1.1.0.M4 -->
                <property name="scope" value="email" />              
            </bean>
        </list>
    </property>
</bean>

これは Spring Social 1.1.0.M3 で動作します

于 2013-07-20T14:28:29.527 に答える