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 <mariusdumitru.florea(a)xwiki.com>
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
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs