First of all the current architecture doesn't support multiple authenticators simultaneously (at least I didn't find how). I wanted to add OpenID as an additional (optional) authentication method as shown in my proposal at http://dev.xwiki.org/xwiki/bin/view/Design/SingleSignOn. This is not possible with the current design - at least not in an elegant manner. Should I add OpenID so that it is always shown if the MyFormAuthenticator is used? Or should I think about how we could make XWiki more flexible?
In the context of GSOC I think adding some if in the right places will be enough.
OK, if I understood you right that means that I should add it to MyFormAuthenticator, right?
I can't implement the whole XWikiAuthService interface because OpenID doesn't use passwords. This could cause problems. Should we change that interface or create a new one for authentication methods that rely only on XWikiContext?
Except it's not very clean, I don't see the problem with password parameter. Do you say that you need something else or just that password is useless ?
Well I need the request object because I need to handle the the data passed from the OP to XWiki. So I can use only the XWikiContext object, username and password are useless for me.
The authentication need a complete refactor (chained component, UI modularity, parameters modularity, etc.) but I doubt this can be done here. You already have lot of work do do ;)
I fear that's true :-)
I need a mechanism to handle the response of the OpenID provider (at a known URL). What's the best approach for that? Using an action, a servlet, ...? I need to parse and evaluate the response and depending on return to the login form showing an error message or logging in the user and forwarding it to the requested resource.
I would say servlet as it seems totally independent from XWiki standard http process but i'm not the expert on that.
Hmm.. I would have said an action is the right thing (thinking of keeping everything in the MVC architecture) but as already said I don't know what's the best. Would be nice if a "expert" could help me with that question :-) I wish you all a nice weekend, Markus