Class LDAPCollectionHelper
java.lang.Object
org.ametys.runtime.plugin.component.AbstractLogEnabled
org.ametys.core.util.ldap.AbstractLDAPConnector
org.ametys.plugins.contentio.synchronize.impl.LDAPCollectionHelper
- All Implemented Interfaces:
LogEnabled
,Component
,Serviceable
Helper component for
SynchronizableContentsCollection
s which need to access a LDAP-
Field Summary
Modifier and TypeFieldDescriptionprotected ContentTypeExtensionPoint
The content type extension pointstatic final String
Avalon RoleFields inherited from class org.ametys.core.util.ldap.AbstractLDAPConnector
__DEFAULT_PAGE_SIZE, _ldapAdminPassword, _ldapAdminRelativeDN, _ldapAliasDerefMode, _ldapAuthenticationMethod, _ldapBaseDN, _ldapFollowReferrals, _ldapUrl, _ldapUseSSL, _pagingSupported, _serverSideSorting
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
_cleanup
(Context context, NamingEnumeration result, Logger logger) Clean a connection to a ldap server.void
_delayedInitialize
(String dataSourceId) Call this method with the datasource id to initialize this componentprotected Object
_getIdValue
(String idKey, SearchResult entry, Logger logger) Gets id value from a ldap entryprotected int
Get the scope as an integer (handlable by the SearchControls) from the scope string.protected SearchControls
Get the LDAP search controls.int
Returns the number of errors which occuredsearch(String, int, String, String, String, int, int, Map, String, Logger)
boolean
Returns true if the a global error occured duringsearch(String, int, String, String, String, int, int, Map, String, Logger)
search
(String collectionId, int pageSize, String relativeDN, String filter, String searchScope, int offset, int limit, Map<String, List<String>> mapping, String idKey, Logger logger) Search over the LDAP the data from the filter.void
service
(ServiceManager serviceManager) void
transformTypedAttributes
(Map<String, Map<String, List<Object>>> results, String contentTypeId, Set<String> allAttributes) Transform date and datetime attributes on each result line from timestamp to LocalDate (date) or ZonedDateTime (datetime)Methods inherited from class org.ametys.core.util.ldap.AbstractLDAPConnector
_cleanup, _getConfigParameter, _getContextEnv, _getFilter, _getRootContextEnv, _getSearchScope, _hasMoreEntries, _search, _search, _search, _search, _setResultsControls, _testConnectionsPooled, _testPagingSupported, getSortByFields, isPagingSupported
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
Field Details
-
ROLE
Avalon Role -
_contentTypeEP
The content type extension point
-
-
Constructor Details
-
LDAPCollectionHelper
public LDAPCollectionHelper()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classAbstractLDAPConnector
- Throws:
ServiceException
-
_delayedInitialize
Description copied from class:AbstractLDAPConnector
Call this method with the datasource id to initialize this component- Overrides:
_delayedInitialize
in classAbstractLDAPConnector
- Parameters:
dataSourceId
- The id of the datasource- Throws:
Exception
- If an error occurs.
-
search
public Map<String,Map<String, searchObject>> (String collectionId, int pageSize, String relativeDN, String filter, String searchScope, int offset, int limit, Map<String, List<String>> mapping, String idKey, Logger logger) Search over the LDAP the data from the filter. After calling this method, call the methodsgetNbErrors()
andhasGlobalError()
to know about error which occured.- Parameters:
collectionId
- The id of the collection being synchronizedpageSize
- The page size for the searchrelativeDN
- the name of the context or object to searchfilter
- the filter expression to use for the searchsearchScope
- The search scopeoffset
- Begin of the searchlimit
- Number of resultsmapping
- The mapping for retrieving the remote values (keys are metadata paths)idKey
- The key where to search the id value of the contentlogger
- The logger- Returns:
- A map containing the content ids (keys) to import with their remote values (key is attribute, value is the remote value).
-
getNbErrors
Returns the number of errors which occuredsearch(String, int, String, String, String, int, int, Map, String, Logger)
- Returns:
- the number of errors which occured
search(String, int, String, String, String, int, int, Map, String, Logger)
-
hasGlobalError
Returns true if the a global error occured duringsearch(String, int, String, String, String, int, int, Map, String, Logger)
- Returns:
- true if the a global error occured during
search(String, int, String, String, String, int, int, Map, String, Logger)
-
_getSearchControls
protected SearchControls _getSearchControls(Map<String, List<String>> mapping, String searchScope) throws ProcessingExceptionGet the LDAP search controls.- Parameters:
mapping
- The mappingsearchScope
- The search scope- Returns:
- the search controls.
- Throws:
ProcessingException
- if the scope is not valid
-
_getScope
Get the scope as an integer (handlable by the SearchControls) from the scope string.- Parameters:
scopeStr
- the scope string.- Returns:
- the scope as an integer.
- Throws:
ProcessingException
- if the given scope is not valid
-
_getIdValue
protected Object _getIdValue(String idKey, SearchResult entry, Logger logger) throws NamingException Gets id value from a ldap entry- Parameters:
idKey
- The key where to search the id valueentry
- The ldap entrylogger
- The logger- Returns:
- The attribute value
- Throws:
NamingException
- if a ldap query error occurred
-
_cleanup
Clean a connection to a ldap server.- Parameters:
context
- The connection to the database to close.result
- The result to close.logger
- The logger
-
transformTypedAttributes
public void transformTypedAttributes(Map<String, Map<String, List<Object>>> results, String contentTypeId, Set<String> allAttributes) Transform date and datetime attributes on each result line from timestamp to LocalDate (date) or ZonedDateTime (datetime)- Parameters:
results
- The results from LDAP sourcecontentTypeId
- Content type ID from which attributes come fromallAttributes
- All mapped attributes
-