r955 - in xwiki/trunk: . src/main/java/com/xpn/xwiki/user/impl/LDAP
Xavier MOGHRABI
moghrabix at users.forge.objectweb.org
Thu Mar 2 11:33:40 CET 2006
Author: moghrabix
Date: 2006-03-02 11:33:39 +0100 (Thu, 02 Mar 2006)
New Revision: 955
Modified:
xwiki/trunk/.classpath
xwiki/trunk/src/main/java/com/xpn/xwiki/user/impl/LDAP/LDAPAuthServiceImpl.java
Log:
Improvements on LDAP authentification when using Virtual Wiki configuration
Modified: xwiki/trunk/.classpath
===================================================================
--- xwiki/trunk/.classpath 2006-03-02 07:39:59 UTC (rev 954)
+++ xwiki/trunk/.classpath 2006-03-02 10:33:39 UTC (rev 955)
@@ -25,7 +25,6 @@
<classpathentry kind="lib" path="lib/exoplatform.services.security.impl-1.0.jar"/>
<classpathentry kind="lib" path="lib/exo-security-service-1.0.jar"/>
<classpathentry kind="lib" path="lib/exo-services-container-1.0.jar"/>
- <classpathentry kind="lib" path="lib/groovy-all-1.0-jsr-01.jar"/>
<classpathentry kind="lib" path="lib/InlineJavaServer.jar"/>
<classpathentry kind="lib" path="lib/InlineJavaUser.jar"/>
<classpathentry kind="lib" path="lib/jcommon-1.0.0-rc1.jar"/>
@@ -115,5 +114,6 @@
<classpathentry kind="lib" path="lib/jcr-1.0.jar"/>
<classpathentry kind="lib" path="lib/rome-0.7.jar"/>
<classpathentry kind="lib" path="lib/rome-fetcher-0.7.jar"/>
+ <classpathentry kind="lib" path="lib/groovy-all-1.0-jsr-04.jar"/>
<classpathentry kind="output" path="build/web/WEB-INF/classes"/>
</classpath>
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/user/impl/LDAP/LDAPAuthServiceImpl.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/user/impl/LDAP/LDAPAuthServiceImpl.java 2006-03-02 07:39:59 UTC (rev 954)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/user/impl/LDAP/LDAPAuthServiceImpl.java 2006-03-02 10:33:39 UTC (rev 955)
@@ -97,8 +97,29 @@
principal = GetUserPrincipal(susername, context);
if (principal == null && attributes.size() > 0)
{
- CreateUserFromLDAP(susername, attributes, context);
- principal = GetUserPrincipal(susername, context);
+ // In case of Virtual Wikis, users should be added in the main wiki
+ // if ldap is not configured for the virtual wiki
+ if (context.isVirtual()) {
+ String db = context.getDatabase();
+ try {
+ // Switch to the main database in case of
+ // virtual and if not local LDAP configuration
+ if (context.getWiki().getXWikiPreference("ldap_server", context) == null || context.getWiki().getXWikiPreference("ldap_server", context).length() == 0) {
+ context.setDatabase(context.getWiki().getDatabase());
+ }
+ try {
+ CreateUserFromLDAP(susername, attributes, context);
+ principal = GetUserPrincipal(susername, context);
+ } catch (Exception e) {
+ }
+ } finally {
+ context.setDatabase(db);
+ }
+ } else {
+ CreateUserFromLDAP(susername, attributes, context);
+ principal = GetUserPrincipal(susername, context);
+ }
+ context.getWiki().flushCache();
}
}
}
More information about the Xwiki-notifications
mailing list