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

