Объект SocialAuthManager ('manager') становится NULL после перенаправления в случае библиотек SocialAuth с приложением JSF? - PullRequest
0 голосов
/ 12 августа 2011

Я использую библиотеки SocialAuth в своем приложении JSF для обеспечения входа в систему с помощью Google / Facebook.Как показано ниже, требуется, чтобы я сохранил объект SocialAuthManager («manager») в сеансе, а затем перенаправил на URL «google / facebook»

//Create an instance of SocialAuthManager and set config
SocialAuthManager manager = new SocialAuthManager();
manager.setSocialAuthConfig(config);

// URL of YOUR application which will be called after authentication
String successUrl= "http://opensource.brickred.com/socialauthdemo/socialAuthSuccessAction.do";

// get Provider URL to which you should redirect for authentication.
// id can have values "facebook", "twitter", "yahoo" etc. or the OpenID URL
String url = manager.getAuthenticationUrl(id, successUrl);

// Store in session
session.setAttribute("authManager", manager);

Затем получил «manager» из сеанса при succssfull / failперенаправление из facebook / redirect, как показано ниже:

// get the social auth manager from session
SocialAuthManager manager = (SocialAuthManager)session.getAttribute("authManager");

// call connect method of manager which returns the provider object.
// Pass request parameter map while calling connect method.    
AuthProvider provider = manager.connect(SocialAuthUtil.getRequestParametersMap(request));

// get profile
Profile p = provider.getUserProfile();

Проблема в том, что если я уже вошел в Facebook или Google в одной из «вкладок» браузера, то это прекрасно работает.Но если я еще не вошел в систему, сессия становится NULL и, следовательно, также «менеджером».

Другими словами, если происходит перенаправление с «моего приложения на Facebook на мое приложение», оно завершается неудачно.Если я уже вошел в Facebook, то перенаправление не происходит, и оно работает.

Может кто-нибудь помочь?ПРИМЕЧАНИЕ: это отлично работает в случае IE, но не работает в случае Chrome & Mozila

1 Ответ

0 голосов
/ 13 апреля 2012

причина такого поведения заключается в том, что вы вызываете перенаправленную страницу из другого домена, поэтому при перенаправлении страницы данные сеанса теряются.Пожалуйста, посмотрите на эту ссылку

http://31stdimension.blogspot.in/2012/04/how-to-connect-facebook-using-jsfjava.html

...