mongodb - grails 2.2.4 and grails-spring-security-facebook plugin with GPmongoDB 1.3.0GA -
when use grails spring security facebook plugin mongodb database, keep throwing optimisticlockingexception on these section.
then override facebookauthservice these.
class facebookauthservice { def create(facebookauthtoken token) { facebookuser fbuser = new facebookuser(uid: token.uid) fbuser.accesstoken = token.accesstoken?.accesstoken fbuser.accesstokenexpires = token.accesstoken?.expireat facebook facebook = new facebooktemplate(token.accesstoken.accesstoken) facebookprofile fbprofile = facebook.useroperations().userprofile user user = user.findbyusernameorfacebookid(fbprofile.email,fbprofile.id) if(!user){ user = new user() user.facebookid = fbprofile.id user.firstname = fbprofile.firstname.tols() user.lastname = fbprofile.lastname.tols() user.gender = gender.strtoenum(fbprofile.gender) user.acceptterms = true user.accepttermsdate = new date() user.accountexpired = false user.passwordexpired = false user.accountlocked = false user.enabled = true user.username = "facebook_$token.uid" user.password = token.accesstoken.accesstoken }else{ user.facebookid = fbprofile.id } user.save(flush: true, failonerror: true) fbuser.user = user role role = role.findbyauthority('role_user') if (role && !user.authorities.contains(role)) { userrole.create(user, role) } fbuser.save(flush: true, failonerror: true) return fbuser } def getappuser(facebookuser facebookuser){ return facebookuser?.user } collection<grantedauthority> getroles(user user){ return userrole.findallbyuser(user)?.role?.collect{ role -> new grantedauthorityimpl(role.authority) } } }
but throws connection wait timeout after 120000 ms. stacktrace follows: message: connection wait timeout after 120000 ms
i know there bug gpmongodb driver. , fixed described on there.
please me fix
- grails version 2.2.4
- mongodb version 2.2.4
- gpmongo driver version 1.3.0ga
- spring security facebook plugin version :0.14.5 includes thse additional plugins collect user information.
- 'org.springframework.social:spring-social-core:1.0.3.release'
- 'org.springframework.social:spring-social-facebook:1.0.3.release'
edit: found out cause com.the6hours.grails.springsecurity.facebook.facebookauthprovider class's authenticate method keeps calling on every request. cause of loop ?
Comments
Post a Comment