I have one narrow answer to only one of your questions, the third one. We have IBM's TIM/TAM (Tivoli [Access|Identity] Manager), which supports a cookie-based SSO approach, which we utilize via a servlet filter (see the Java Servlet API 2.4) that checks for, verifies, and parses the cookies into a Map of values that it places into an HttpSession attribute, and creates an HttpServletRequestWrapper that implements HttpServletRequest.getUserPrincipal() to return a custom Principal that implements Principal.getName() to return the name set by the cookie, and HttpServletRequest.isUserInRole(String rolename) to return true if the requested rolename is one of the values set in the appropriate field in the cookie. If the required cookies are not found (and the particular servlet path requires authentication), the HttpResponse.sendRedirect(String url) method is invoked with the URL of the SSO login page, which typically takes a parameter naming the requested page (URL-encoded, so as not to present any parameters of its own to the SSO page) so that when the SSO authentication form is satisfied, it redirects again to the originally requested page, and the filter will now be satisfied and pass the request on to the servlet application. So far, I've described nothing that would allow XWiki to work with it unmodified; that's because it's meant to allow any web application that uses the standard Servlet API security features (of which I have, to date, seen exactly zero, though I can always hope that new apps would like to use my filter out-of-the-box) to take advantage of the SSO solution. To get XWiki to work unmodified with the filter, I created an interface with a method that returns an HttpServletRequestWrapper, and for XWiki I implemented it with a class that adds an attribute to the session (accessible by calling getSession() on the request object) whose name is specified by org.securityfilter.filter.SecurityRequestWrapper.PRINCIPAL_SESSION_KEY and whose value is the Principal object described above. This satisfied the default XWikiAuthService (com.xpn.xwiki.user.impl.xwiki.XWikiAuthServiceImpl) so that it never checks for a password, because it takes the Principal that it finds in the session as proof of having validly logged in. The only modification to XWiki was not to any of the Java code, but to the login.vm template, whose form input was no longer needed, so I modified it so that does nothing but redirect to the originally-requested page. I then deployed the filter in two versions, one optioned to require authentication and one not, and mapped the first one to all url-patterns that do updates and the second to those that don't. It was really only necessary to map the authentication-required version to the /bin/login/* path, however, because XWiki itself would redirect to that path any time that authentication was required. I did other things that you may not find necessary, such as automatically creating a user if he wasn't already registered, and putting him into any XWiki groups that were indicated by values found in the cookie data (by consulting an XWiki object that mapped the values to group names). This was considerably more involved, because it required recreating the XWiki context that a request would be using, but it works great, and without changing any XWiki code except the login template. And as others have said in the interim, there's always LDAP... brain[sic]
-----Original Message----- From: [email protected] [mailto:[email protected]] Sent: Wednesday, July 04, 2007 7:25 AM To: [email protected] Subject: [xwiki-users] Exchange data/Forum/Single sign on
Hi everybody, I have some questions, so if someone have any idea: - Is there ways to exchange data with an Xwiki? If yes how to deal with them? - How can we create a forum in Xwiki? - Is it possible to make a Single Sign On between Xwiki and other software? Thanks!