Hi, >> Are you sure wikiname (not a very good variable name ;) ) includes the >> "XWiki." prefix?
When I try to use createEmptyUser(xwikiname, userRights, context) from an XWiki object (context.getWiki()) if I manually add "XWiki." in the "xwikiname" it creates an "XWiki.mynewuser", but on the Admin Users page it doesn't looks like a normal user, it lacks many of the the user properties and doesn't have the XWiki.XWikiUserSheet in it's content, also when I try to get it's XWikiDocument it appears as XWiki.XWiki.mynewuser. I'm working with XWiki version 2.4 (xwiki-core-2.4.jar Currently, I'm checking how XWikiSunSSOAuthenticator does it, checking what I do wrong. Thank you, Marco A. Gonzalez Date: Fri, 25 Mar 2011 11:44:30 +0200 From: Marius Dumitru Florea <[email protected]> Subject: Re: [xwiki-devs] CAS Integration + new User creation Hi Marco, On 03/25/2011 10:40 AM, Marco Antonio Gonz?lez wrote: > Hi all, > > I'm new developing with XWiki, and I'm not sure this list is the correct to > post this, so sorry in advance for any inconvenience and my bad english. > > I'm trying to get an integration with CAS Auth instead of own XWiki Auth, but > when I try to create a user on my own implementation of XWikiAuthServiceImpl, > the user is created on XWiki space, but when i log into XWiki and Main is my > default Space, the Profile link on top points to > /xwiki/bin/view/Main/mynewuser instead of /xwiki/bin/view/XWiki/mynewuser > where I can edit his first name, surname, etc. Is this the default behaviour? > If not, any suggestions of what I do wrong? > > The autentication code is, in my CASAuthServiceImpl class: > > public XWikiUser checkAuth(XWikiContext context) throws XWikiException { > String remoteUser = context.getRequest().getRemoteUser(); > String wikiname = ""; > if ((remoteUser == null) || remoteUser.equals("")) { > getLogger().warn("checkAuth: User cannot be authenticated (REMOTE_USER > is null)"); > try { > context.getResponse().sendRedirect("/cas/login"); > } catch (IOException ioe) { > getLogger().warn("checkAuth: CAS Error. Let XWiki handle it. "); > return super.checkAuth(context); > } > } else if (remoteUser.equalsIgnoreCase("xwiki")) { > getLogger().warn("checkAuth: User is XWIKI (superadmin)"); > wikiname = "XWiki.superadmin"; > } else { > XWiki wiki = context.getWiki(); > wikiname = wiki.clearName(remoteUser, true, true, context); Are you sure wikiname (not a very good variable name ;) ) includes the "XWiki." prefix? > this.context.getWiki().createEmptyUser(wikiname, "edit", context); > } > context.setUser(wikiname); References are resolved relative to the current context: Foo -> currentWiki:currentSpace.Foo Bar.Foo -> currentWiki:Bar.Foo wiki:Bar.Foo -> wiki:Bar.Foo Hope this helps, Marius > return new XWikiUser(wikiname); > } catch (XWikiException e) { > getLogger().error("checkAuth: Cannot validate user. " + e.getMessage()); > throw e; > } > > Thank you, > Marco A. Gonzalez > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

