Hello again,

FYI, I've just released a new version of the extension, since I had upgraded to a newer version of socialauth dependency and fixed a couple of bugs, but never got to publish it. It might fix the issue you've encountered (together with what I've said in my previous mail).

Let me know if this works for you.

On 08/02/2012 09:09 AM, Caroline wrote:
Hi,

i installed the "Social Login Extension" and followed the steps to implement
it to my wiki.

First i wanted to try the facebook login. Therefore, i created a facebook
app and put the app keys in the oauth_consumer.properties file.

My wiki runs on my localhost. So i put "http://localhost:8080"; in the
configuration of my facebook app.

When i click on the social login button at the xwiki login it redirects me
to facebook, where i have to confirm that i want to do this. But when i am
redirected to xwiki i get the following error message:

org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Script
Macro for content [import org.brickred.socialauth.AuthProvider
import org.brickred.socialauth.AuthProviderFactory

/**
  * Displays a form with a single field for a new SSO user to pickup its
usernamem
  */
def outputUsernameCreationForm = { defaultValue, provider ->
   if (!defaultValue)
     defaultValue = ""
   xwiki.ssx.use('XWiki.SocialLogin')
   println """
{{html clean=false}}
<form class="xform" action=${doc.getURL('view')} method="post"
id="createUsernameForm">
   <div class="centered">
     <fieldset class="xwikimessage">
       <legend>${msg.get('xwiki.socialLogin.youMustBeNewHere')}</legend>
       <input type="hidden" name="xaction" value="createProfile" />
       <p class="message">
         ${msg.get('xwiki.socialLogin.createProfileMessage', [provider])}
       </p>
       <dl>
         <dt>${msg.get('xwiki.socialLogin.pickupUsername')}</dt>
         <dd><input type="text" name="username" value="${defaultValue}"
/></dd>
       </dl>
       <div class="buttons">
<input class="button" type="submit"
value="${msg.get('xwiki.socialLogin.createMyAccount')}" />
</div>
     </fieldset>
   </div>
</form>
{{/html}}
"""
}

/**
  * Authenticate a user and make it remembered in XWiki authentication system
  */
def authenticateUser = { userDoc ->
   def password =
userDoc.getObject('XWiki.SocialLoginClass').getProperty('password_cache').value
   def xwikiAuthenticator =
[email protected]()[email protected]('xwiki')
   def psm = xwikiAuthenticator.@persistentLoginManager
   psm.rememberLogin(request, response, userDoc.fullName, password)
   response.sendRedirect(xwiki.getURL('Main.WebHome', 'view'))
}


// Load oauth properties file
def properties = new java.util.Properties()
properties.load(com.xpn.xwiki.web.Utils.getComponent("org.xwiki.container.Container").applicationContext.getResourceAsStream("/WEB-INF/oauth_consumer.properties"))

/**
  * Initiate the OAuth dance with the requested provider
  */
if(!request.callback && request.provider) {

   try {

     def provider = AuthProviderFactory.getInstance(request.provider,
properties)

     println provider

     String url =
provider.getLoginRedirectURL(doc.getExternalURL('view','callback=1'));

     // Store in session
     request.session.setAttribute("org.brickred.socialauth.AuthProvider",
provider);
request.session.setAttribute("org.brickred.socialauth.AuthProvider.hint",
request.provider);

     response.sendRedirect(url)
   }
   catch(Exception e) {
     println """
{{error}}
${msg.get('xwiki.socialLogin.genericError', [e.message])}
{{/error}}
"""
   }

}
/**
  * We've got a response from the provider, let's treat it
  */
else if (request.callback){

   try {

     // get the provider back from session
     def provider =
request.session.getAttribute("org.brickred.socialauth.AuthProvider");
     def providerID =
request.session.getAttribute("org.brickred.socialauth.AuthProvider.hint");

     // verify the authentication
     def profile = provider.verifyResponse(request);

     // Search for this user in database
     def query = services.query.xwql("from doc.object(XWiki.XWikiUsers) as
user, doc.object(XWiki.SocialLoginProfileClass) as profile where
profile.provider = '" + providerID + "' and profile.validatedId = '" +
profile.validatedId + "'")

     for (result in query.execute()) {
       authenticateUser(xwiki.getDocument(result))
     }

     // Not authenticated/redirected yet ? -> You must be new here
     // You will have to pick-up a username and dad will create an account
for you

     // Store the social profile in the session
     request.session.setAttribute("org.brickred.socialauth.Profile",
profile);

     // Try to guess what username the user will want to use
     def guessedUsername = profile.displayName

     // Outputs the form to create the username
     outputUsernameCreationForm(guessedUsername, providerID)

   } catch(Exception e) {
     println """
{{error}}
${msg.get('xwiki.socialLogin.genericError', [e.message])}
{{/error}}
"""
   }

}
/**
  * Create a new user profile from the social profile result
  */
else if (request.xaction && request.xaction == 'createProfile') {

   def profile =
request.session.getAttribute("org.brickred.socialauth.Profile")
   def provider =
request.session.getAttribute("org.brickred.socialauth.AuthProvider.hint");

   def username = request.username
   if (username && username != '' && !xwiki.exists("XWiki." + username)) {
     // Everything clear, let's proceed

     def userDocName = "XWiki." + username

     // Generate a random password
     password = xwiki.generateRandomString(16)

     def propMap = [:]
     propMap.put("active", "1")
     propMap.put("email", profile.email)
     propMap.put("first_name", profile.firstName)
     propMap.put("last_name", profile.lastName)
     propMap.put("password", password)

     [email protected](username, propMap, xcontext.@context)

     def userDoc = xwiki.getDocument(userDocName)

     def socialProfile = userDoc.getObject('XWiki.SocialLoginProfileClass',
true)
     socialProfile.set('provider', provider)
     socialProfile.set('fullName', profile.fullName)
     socialProfile.set('firstName', profile.firstName)
     socialProfile.set('lastName', profile.lastName)
     socialProfile.set('displayName', profile.displayName)
     socialProfile.set('email', profile.email)
     socialProfile.set('profileImageURL', profile.profileImageURL)
     socialProfile.set('gender', profile.gender)
     socialProfile.set('dob', profile.dob)
     socialProfile.set('validatedId', profile.validatedId)
     socialProfile.set('country', profile.country)
     socialProfile.set('location', profile.location)

     def socialPrefs = userDoc.getObject('XWiki.SocialLoginClass', true)
     socialPrefs.set('password_cache', password)
     socialPrefs.set('preferred_provider', provider)

userDoc.saveWithProgrammingRights(msg.get('xwiki.socialLogin.updatedSocialProfile'),
true)

     authenticateUser(userDoc)
   }
   else {

     if (!username || username == '')
       println """
{{error}}
${msg.get('xwiki.socialLogin.youMustPickUsername')}
{{/error}}
"""

     else if (xwiki.exists('XWiki.' + username))
       println """
{{error}}
${msg.get('xwiki.socialLogin.usernameAlreadyTaken')}
{{/error}}
"""

     outputUsernameCreationForm("", provider);
   }

}

/**
  * View mode
  */
else {
   println """
{{info}}
${msg.get('xwiki.socialLogin.nothingToDo')}
{{/info}}
"""
}]
        at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:178)
        at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:53)
        at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:198)
        at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
        at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:190)
        at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:135)
        at
org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:83)
        at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:248)
        at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:124)
        at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:54)
        at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:80)
        at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:38)
        at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:111)
        at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
        at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:67)
        at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:41)
        at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:901)
        at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:880)
        at
com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:911)
        at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:582)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
        at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
        at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
        at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
        at
org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
        at
org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
        at
org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
        at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
        at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
        at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
        at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
        at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:224)
        at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
        at
com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
        at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1799)
        at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1739)
        at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:854)
        at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
        at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
        at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
        at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
        at
org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
        at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
        at
org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
        at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
        at
org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
        at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
        at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
        at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
        at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
        at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
        at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
        at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
        at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:224)
        at
org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
        at
com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
        at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1799)
        at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:155)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:241)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:120)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
        at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.script.ScriptException: javax.script.ScriptException:
groovy.lang.MissingPropertyException: No such property: msg for class:
Script2
        at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:122)
        at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.eval(AbstractJSR223ScriptMacro.java:280)
        at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:213)
        at
org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:173)
        ... 103 more
Caused by: javax.script.ScriptException:
groovy.lang.MissingPropertyException: No such property: msg for class:
Script2
        at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:323)
        at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:116)
        ... 106 more
Caused by: groovy.lang.MissingPropertyException: No such property: msg for
class: Script2
        at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
        at
org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
        at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
        at Script2.run(Script2.groovy:117)
        at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:320)
        ... 107 more


Do u have any idea, what i can do? I tried so much,  but nothing worked.

Thank you a lot
Caroline



--
View this message in context: 
http://xwiki.475771.n2.nabble.com/Social-Login-Extension-Problem-tp7580669.html
Sent from the XWiki- Dev mailing list archive at Nabble.com.
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs


--
Peace,
—Jerome

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to