[xwiki-devs] CAS Integration + new User creation

Thomas Mortagne thomas.mortagne at xwiki.com
Fri Mar 25 11:46:06 UTC 2011


Hi,

As Kevin suggested it's a good idea to follow existing authenticators
on http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/authenticators/

Note that you get reuse some generic abstract classes in
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/authenticators/xwiki-authentication-puma/src/main/java/com/xwiki/authentication/
to make it easier for you?

2011/3/25 Marco Antonio González <magonzalez at grupointermark.com>:
> 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 at 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 at xwiki.org
>> http://lists.xwiki.org/mailman/listinfo/devs
> _______________________________________________
> devs mailing list
> devs at xwiki.org
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne



More information about the devs mailing list