Social Login Extension Problem

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Social Login Extension Problem

Caroline
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 = xwiki.@xwiki.getAuthService().@authenticators.get('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)

    xwiki.@xwiki.createUser(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
Reply | Threaded
Open this post in threaded view
|

Re: Social Login Extension Problem

Jérôme Velociter
Hi Caroline,

This extension is not going to work for a local wiki, since it requires
a two way communication (Facebook, or any other end point needs to be
able to communicate with the server) ; while here the endpoint wouldn't
know about localhost. This is how OAuth works.
So the first thing to do is to expose your wiki to a URL reachable from
outside.
I don't know if this is going to fix your issue or not, but that's a
pre-requisite anyway.


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 =
> [hidden email]().@authenticators.get('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)
>
>      [hidden email](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
> [hidden email]
> http://lists.xwiki.org/mailman/listinfo/devs


--
Peace,
—Jerome

_______________________________________________
devs mailing list
[hidden email]
http://lists.xwiki.org/mailman/listinfo/devs
Reply | Threaded
Open this post in threaded view
|

Re: Social Login Extension Problem

Jérôme Velociter
In reply to this post by Caroline
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 =
> [hidden email]().@authenticators.get('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)
>
>      [hidden email](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
> [hidden email]
> http://lists.xwiki.org/mailman/listinfo/devs


--
Peace,
—Jerome

_______________________________________________
devs mailing list
[hidden email]
http://lists.xwiki.org/mailman/listinfo/devs
Reply | Threaded
Open this post in threaded view
|

Re: Social Login Extension Problem

Caroline
Hi Jerome,

thank you for your tips. Next week I will be able to test your extension on a webserver. I have to wait for getting access to the webserver. I want to implement your extension for a university project into an existing xWiki and tried it first on my one on localhost.

Thanks for releasing your version 0.2 to the extension page. I will let you hear about, when i tried it. When i read about o-auth and facebook, i found an article from 2011 where they said, facebook works now only with o-auth v.2 and I see that you upgraded to o-auth 2.2. So I am exited if it will work.

Thx a lot,
Caroline