나는 스프링 사회에 처음이고 링크드 인을위한 소셜 서명을 설정하려고한다. Spring Social Linkedin - SignIn
공용 클래스 SocialSignInAdapter가 {
의 login.jsp에서@Override
public String signIn(String userId, Connection<?> connection, NativeWebRequest request) {
System.out.println("User Id is ===>>> "+userId);
System.out.println("Connection is ====>>> "+connection);
return null;
}
}
,
<li class="linkedin"><a href="${pageContext.request.contextPath}/signin/linkedin" title="LinkedIn"> </a></li>
SignInAdapter를 구현
<context:component-scan base-package="com.tc.web">
<context:include-filter type="regex"
expression="(service|controller|component)\..*" />
</context:component-scan>
<bean id="connectionFactoryLocator"
class="org.springframework.social.connect.support. ConnectionFactoryRegistry">
<property name="connectionFactories">
<list>
<bean
class="org.springframework.social.linkedin.connect .LinkedInConnectionFactory">
<constructor-arg value="key........" />
<constructor-arg value="secret .........." />
</bean>
</list>
</property>
</bean>
<bean id="textEncryptor" class="org.springframework.security.crypto.encrypt .Encryptors"
factory-method="noOpText" />
<bean id="usersConnectionRepository"
class="org.springframework.social.connect.jdbc.Jdb cUsersConnectionRepository">
<constructor-arg ref="dataSource" />
<constructor-arg ref="connectionFactoryLocator" />
<constructor-arg ref="textEncryptor" />
</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.tc.web.social.signin.SocialSignInAdapte r" />
<bean class="org.springframework.social.connect.web.Prov iderSignInController">
<!-- relies on by-type autowiring for the constructor-args -->
<constructor-arg ref="signInAdapter" />
<property name="applicationUrl" value="link" />
<property name="signUpUrl" value="link" />
<property name="signInUrl" value="link" />
</bean>
내 SocialSignInAdapter.java은, 아래 내 스프링 설정 파일,
위의 linkedin 링크를 클릭하면 404 오류가 발생합니다.
내 응용 프로그램이 요청에 대한 ProviderSignInController를 찾을 수 없다고 생각합니다. // dom : 8080/myApp/signin/linkedin.
아래 설정이 봄 xml로 의심됩니다.
<context:component-scan base-package="com.tc.web">
<context:include-filter type="regex"
expression="(service|controller|component)\..*" />
</context:component-scan>
com.tc.web 패키지 안에 모든 컨트롤러가 있습니다. 하지만 ProviderSignInController는 Spring 패키지에 있고 내 앱에서 찾을 수 없습니다.
다음과 같이 시도해 보았습니다.
<context:component-scan base-package="com.tc.web,org.springframework.social.con nect.web">
<context:include-filter type="regex"
expression="(service|controller|component)\..*" />
</context:component-scan>
위의 구성으로 ProviderSignInController에 대한 매핑이 잘못되었습니다. 그래서 스프링을 제거했습니다.
<bean class="org.springframework.social.connect.web.Prov iderSignInController">
<!-- relies on by-type autowiring for the constructor-args -->
<constructor-arg ref="signInAdapter" />
<property name="applicationUrl" value="link" />
<property name="signUpUrl" value="link" />
<property name="signInUrl" value="link" />
</bean>
하지만 여전히 404 오류가 발생합니다.
사람이 제발 ..........
덕분에 나를 도와 Baskar.S