SocialAuthManager object ('manager') becomes NULL after redirection in case of SocialAuth libraries with JSF application?

邮差的信 提交于 2019-12-13 04:51:19

问题


I am using SocialAuth libraries in my JSF application for providing 'login with google/facebook'. As shown below it requires me to stores the SocialAuthManager object ('manager') in the session and then redirect to 'google/facebook' URL

//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);

Then get the 'manager' from session on succssfull/failure redirection from facebook/redirect as shown below:

// 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();

The problem is if I am already logged in to facebook or google in a one of the 'tab' of the browser then this works perfectly OK. But if I am not logged in already then session becomes NULL and consequently 'manager' as well.

In other words if redirection from 'my application to facebook to my application' happens then it fails. If I am already logged in to facebook then redirection does not happens and it works.

Can someone help? NOTE: this works perfectly well in case of IE but does not work in case of Chrome & Mozila


回答1:


the reason for this behavior is that you are calling the redirected page from different domain so when page redirection happens your session data is lost. please have a look at this link

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



来源:https://stackoverflow.com/questions/7043854/socialauthmanager-object-manager-becomes-null-after-redirection-in-case-of-s

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!