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

Reply via email to