Sto provando a gestire il login alla mia applicazione tramite i social, e quindi usare il framework messo a disposizione da spring.
pero` ho dei problemi:
ora vi copio un po` di codice cosi` ci capiamo
questo e` il controller
codice:
package com.pharmawizardcabinet.core.controller.social;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.crypto.encrypt.Encryptors;
import org.springframework.social.connect.UsersConnectionRepository;
import org.springframework.social.connect.jdbc.JdbcUsersConnectionRepository;
import org.springframework.social.connect.support.ConnectionFactoryRegistry;
import org.springframework.social.facebook.api.Facebook;
import org.springframework.social.facebook.api.PagedList;
import org.springframework.stereotype.Component;
@Component("socialManager")
public class SocialManager {
@Autowired
@Qualifier("connectionFactoryLocator")
ConnectionFactoryRegistry connectionFactoryLocator;
private Facebook facebook;
public SocialManager() {
}
public SocialManager(Facebook facebook) {
this.facebook = facebook;
}
public String getInfo() {
return facebook.userOperations().getUserProfile().getEmail();
}
public PagedList<String> getPermission() {
return facebook.userOperations().getUserPermissions();
}
public Facebook getFacebook() {
return facebook;
}
public void setFacebook(Facebook facebook) {
this.facebook = facebook;
}
}
questo e` il bean
codice:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<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="${spring.social.facebook.appid}" />
<constructor-arg value="${spring.social.facebook.secretkey}" />
</bean>
</list>
</property>
</bean>
</beans>
questo e` il servizio restful
codice:
@RequestMapping(value = "/signup/facebook", method = RequestMethod.POST)
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public @ResponseBody
ResponsePWCabinet registerUserFacebook(@RequestBody String token) {
logger.debug("[registerUserFacebook] token: " + token);
socialManager.setFacebook(new FacebookTemplate(token));
logger.debug("[registerUserFacebook] socialManager.getInfo(): " + socialManager.getPermission());
return ResponsePWCabinet.build(Risposta.KO, Risposta.USER_EXIST.toString());
}
ma mi va` in errore e mi risponde codesta cosa
codice:
{"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190}}
qualcuno ha idea del perche`?