mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-30 18:15:39 +00:00
15388: ETHREEOH-1872: Better debug logging in authentication components - Now each authentication component logs every step of the authentication process (including reason for failure) if you switch on debug logging for that component or the entire org.alfresco.repo.security.authentication package. E.g. log4j.logger.org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl=debug log4j.logger.org.alfresco.repo.security.authentication.AuthenticationComponentImpl=debug log4j.logger.org.alfresco.repo.security.authentication=debug 15196: Further LDAP sync performance improvements - Bunch user and group creations into small transactions (except for differential sync on login) - Run a differential sync on startup (so that bulk of users are not brought over on first login) - Can be disabled by synchronization.syncOnStartup property 15135: Node creation / ACL performance improvements - When an ACL was set on a leaf node such as a person, redundant 'shared' ACLs were created for child nodes with getInheritedAccessControlList(), even though no child nodes existed. - Now setInheritanceForChildren() makes a 'lazy' call to getInheritedAccessControlList(), only when it realises there are child nodes 15133: Changes to datasource definition for improved performance - Enable caching and reuse of prepared statements (by default 40 for each connection) - Removed custom-connection-pool-context.xml.sample and instead introduced complete property set into repository.properties - Updated v3.2 Wiki docs http://wiki.alfresco.com/wiki/Database_Configuration#Overriding_the_Database_Connection_Properties git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15439 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
66 lines
3.6 KiB
Java
66 lines
3.6 KiB
Java
/*
|
|
* Copyright (C) 2005-2009 Alfresco Software Limited.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
* As a special exception to the terms and conditions of version 2.0 of
|
|
* the GPL, you may redistribute this Program in connection with Free/Libre
|
|
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
|
* FLOSS exception. You should have received a copy of the text describing
|
|
* the FLOSS exception, and it is also available here:
|
|
* http://www.alfresco.com/legal/licensing"
|
|
*/
|
|
package org.alfresco.repo.security.sync;
|
|
|
|
/**
|
|
* A <code>UserRegistrySynchronizer</code> is responsible for synchronizing Alfresco's local user (person) and group
|
|
* (authority) information with one or more external sources (most typically LDAP directories).
|
|
*
|
|
* @author dward
|
|
*/
|
|
public interface UserRegistrySynchronizer
|
|
{
|
|
/**
|
|
* Creates a person object for a successfully authenticated user who does not yet have a person object, if allowed
|
|
* to by configuration. Depending on configuration, may trigger a partial synchronize and/or create a new person
|
|
* with default settings.
|
|
*
|
|
* @param username
|
|
* the user name
|
|
* @return true, if a person is created
|
|
*/
|
|
public boolean createMissingPerson(String username);
|
|
|
|
/**
|
|
* Retrieves timestamped user and group information from configured external sources and compares it with the local
|
|
* users and groups last retrieved from the same sources. Any updates and additions made to those users and groups
|
|
* are applied to the local Alfresco copies.
|
|
*
|
|
* @param force
|
|
* Should a complete or partial set of information be queried from the external sources? When
|
|
* <code>true</code> then <i>all</i> users and groups are queried. With this complete set of information,
|
|
* the implementation is able to identify which users and groups have been deleted, so it will delete
|
|
* users and groups as well as update and create them. When <code>false</code> then each source is only
|
|
* queried for those users and groups modified since the most recent modification date of all the objects
|
|
* last queried from that same source. In this mode, local users and groups are created and updated, but
|
|
* not deleted.
|
|
* @param splitTxns
|
|
* Can the modifications to Alfresco be split across multiple transactions for maximum performance? If
|
|
* <code>true</code>, users and groups are created/updated in batches of 10 for increased performance. If
|
|
* <code>false</code>, all users and groups are processed in the current transaction. This is required if
|
|
* calling synchronously (e.g. in response to an authentication event in the same transaction).
|
|
*/
|
|
public void synchronize(boolean force, boolean splitTxns);
|
|
} |