1

У меня есть встроенная кнопка социального входа [Facebook] с моим веб-приложением. Его работа прекрасна, используя весенне-социальную и весеннюю безопасность.share with facebook с использованием Spring-Social и Spring Security

В моей login.jsp у меня есть:

<!-- Add Facebook sign in button --> 
<a href="${pageContext.request.contextPath}/auth/facebook"><button class="btn btn-facebook"><i class="icon-facebook"></i>facebook</button></a> 

Теперь мой контроллер registrion это: Это место, где я получаю обратный вызов от Facebook, когда пользователь пытается войти в первый раз от Facebook и зарегистрируйте пользователя в моей базе данных.

@RequestMapping(value = "/user/register", method = RequestMethod.GET) 
    public String showRegistrationForm(WebRequest request, Model model) 
    { 
     LOGGER.debug("Rendering registration page."); 
     @SuppressWarnings("deprecation") 
     Connection<?> connection = ProviderSignInUtils.getConnection(request); 
     RegistrationForm registration = createRegistrationDTO(connection); 
     LOGGER.debug("Rendering registration form with information: {}", registration); 
     model.addAttribute(MODEL_NAME_REGISTRATION_DTO, registration); 
     return VIEW_NAME_REGISTRATION_PAGE; 
    } 

А также пользователь получает сохраненный в таблице UserConnection.

Для последующего входа в систему также я получаю обновленный connection в моем WebRequest

Теперь я хочу, чтобы создать shareWithFacebook операцию для пользователя, вошедшего в в моем приложении, используя signwithfacebook кнопку.

Для этого моего контроллера:

@RequestMapping(method = RequestMethod.GET) 
public String shareWithFacebook(WebRequest request){ 
    Map<String, String[]> params = request.getParameterMap(); 
    String[] head = request.getAttributeNames(WebRequest.SCOPE_REQUEST); 
    String[] head1 = request.getAttributeNames(WebRequest.SCOPE_SESSION); 
    return null; 
} 

Теперь, когда я бег этого контроллера в режиме отладки, то я могу видеть Connection объекта присутствует в моем WebRequest объекте в этом контроллере, Как я могу использовать это подключение объекта, чтобы сделать какой-либо операции, пожалуйста, помогите

ответ

1

никакой помощи от StackOverflow: но на самом деле я получил решение, это может помочь кому-то еще, что размещение такой же:

добавить это в социально-XML конфигурации для инициализации FacebookApiHelper

<bean id="facebookApiHelper" class="org.springframework.social.facebook.config.support.FacebookApiHelper"> 
    <constructor-arg index="0" ref="usersConnectionRepository"/> 
    <constructor-arg index="1" ref="userIdSource"/> 
</bean> 

Затем используйте то же самое в ур-регулятора для работы с существующим объектом соединения с Facebook.

@Controller 
@RequestMapping("/facebook") 
public class FacebookOperationController { 

    private static final Logger logger = LoggerFactory.getLogger(FacebookOperationController.class); 

    @Autowired 
    protected FacebookApiHelper facebookApiHelper; 

    @Autowired 
    UserIdSource userIdSource; 

    private UsersConnectionRepository usersConnectionRepository; 

    @Autowired 
    public FacebookOperationController(UsersConnectionRepository usersConnectionRepository) 
    { 
     this.usersConnectionRepository = usersConnectionRepository; 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public String shareWithFacebook(WebRequest request,Model model){ 

     Facebook facebook = facebookApiHelper.getApi(); 
     Connection<Facebook> connection = usersConnectionRepository.createConnectionRepository(userIdSource.getUserId()).findPrimaryConnection(Facebook.class); 
     return "tilesname"; 
    } 
} 

Теперь у нас есть connection и facebook, пользуются все будет апи ..