[xwiki-devs] CAS Integration + new User creation

Marco Antonio González magonzalez at grupointermark.com
Fri Mar 25 08:40:51 UTC 2011


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);
      this.context.getWiki().createEmptyUser(wikiname, "edit", context);
   }
   context.setUser(wikiname);
   return new XWikiUser(wikiname);
} catch (XWikiException e) {
   getLogger().error("checkAuth: Cannot validate user. " + e.getMessage());
   throw e;
}

Thank you,
Marco A. Gonzalez



More information about the devs mailing list