[xwiki-devs] CAS Integration + new User creation

Marius Dumitru Florea mariusdumitru.florea at xwiki.com
Fri Mar 25 09:44:30 UTC 2011


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



More information about the devs mailing list