Package com.jalios.jcms.ldap
Class SyncLdapHandler
- java.lang.Object
-
- com.jalios.jcms.context.JcmsContext
-
- com.jalios.jcms.context.JcmsJspContext
-
- com.jalios.jcms.handler.JcmsFormHandler
-
- com.jalios.jcms.ldap.SyncLdapHandler
-
- All Implemented Interfaces:
JcmsConstants
,JaliosConstants
public class SyncLdapHandler extends JcmsFormHandler
This form handler performs LDAP synchronization.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
LDAP_GROUP_SYNC_DONE
static java.lang.String
LDAP_IMPORT_ALL_DONE
static org.apache.log4j.Logger
logger
protected boolean
op
protected boolean
opImportAll
protected boolean
opSyncAll
protected boolean
opSyncGroup
protected boolean
opSyncLdapGroup
protected boolean
opSyncOne
static int
SYNC_PROGRESS_GROUP_CREATED
static int
SYNC_PROGRESS_GROUP_TREATED
static int
SYNC_PROGRESS_GROUP_UPDATED
static int
SYNC_PROGRESS_MEMBER_CREATED
static int
SYNC_PROGRESS_MEMBER_TREATED
static int
SYNC_PROGRESS_MEMBER_UPDATED
-
Fields inherited from class com.jalios.jcms.handler.JcmsFormHandler
contextMap, csrfValidationEnabled, editFieldSet, formStep, noRedirect, noSendRedirect, opFinish, opNext, opPrevious, popupEdition, redirect, redirectOnClosePopup, workspaceForced
-
Fields inherited from class com.jalios.jcms.context.JcmsJspContext
AJAX_REQUEST_ATTRIBUTES, BODY_HEADER, CSS_FOOTER, CSS_HEADER, cssboMap, cssfoMap, CUSTOM_HEADER, editIcon, HTTPEQUIV_HEADER, httpequivMap, HTTPNAME_HEADER, httpnameMap, initEditIcon, JAVASCRIPT_CODE_SET_ATTRIBUTE, JAVASCRIPT_SET_ATTRIBUTE, jsboSet, jsfoSet, out, pageContext, SHOW_EDIT_ICON, STYLE_HEADER
-
Fields inherited from class com.jalios.jcms.context.JcmsContext
browser, caddy, channel, inFO, initDone, initWorkspace, isAdmin, isAjaxRequest, isDBMember, isDebug, isDebugTemplatePath, isLogged, loggedMember, request, response, userCountry, userLang, userLocale, userZoneId, workspace
-
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CS_TYPOLOGY_ROOT_CAT_VID, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DATA_DIRECTORY, DEFAULT_PHOTO_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_MINI, PHOTO_MINI_HEIGHT, PHOTO_MINI_PROP_PREFIX, PHOTO_MINI_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SECURITY_LOG_FILE, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_DIR, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, UPLOAD_PERMISSION_COUNT_PROP_PREFIX, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
-
Constructor Summary
Constructors Constructor Description SyncLdapHandler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
clearLdapGroupBeingSync(javax.servlet.http.HttpSession session)
static Group
getLdapGroupBeingSync(javax.servlet.http.HttpSession session)
If LDAP synchronization was request on a LDAP group, return the LDAP Group being synchronized.static java.lang.String
getLdapGroupSyncProgressInformation()
Retrieve progress information of ldap group synchronization.void
performImportAll()
Import all LDAP members and their group in JCMS.void
performSyncAll()
Synchronize all members with LDAP.void
performSyncGroup()
Synchronize members of current group with LDAP.void
performSyncLdapGroup()
Synchronize the LDAP group and retrieve all its member from LDAP.void
performSyncOne()
Synchronize current member with LDAP.boolean
processAction()
Method to be implemented to check/validate action to be performed and process them.void
setGid(java.lang.String gid)
void
setId(java.lang.String id)
void
setLdapGid(java.lang.String gid)
void
setOpImportAll(java.lang.String v)
void
setOpSyncAll(java.lang.String v)
void
setOpSyncGroup(java.lang.String v)
void
setOpSyncLdapGroup(java.lang.String v)
void
setOpSyncOne(java.lang.String v)
static void
synchronizeMembers(java.util.Iterator<? extends Member> mbrIterator, Member opAuthor, java.util.function.Consumer<LDAPMapper> onLdapError, java.util.function.Consumer<Member> onMemberSkipped, java.util.function.Consumer<Member> onMemberSynced)
Synchronize all LDAP account return by the specified Iterator of Member.static void
synchronizeMembers(java.util.Iterator<Member> mbrIterator, JcmsJspContext ctxt)
Synchronize all LDAP account return by the specified Iterator of Member.static void
synchronizeMembers(java.util.Set<Member> memberSet, JcmsJspContext ctxt)
Synchronize all LDAP account in the specified Set of Member.static void
updateLdapGroupSyncProgressInformation(int action, Data data)
This methods adds information regarding the current LDAP synchronization progress to the session.boolean
validateImportAll()
boolean
validateSyncAll()
boolean
validateSyncGroup()
boolean
validateSyncLdapGroup()
boolean
validateSyncOne()
-
Methods inherited from class com.jalios.jcms.handler.JcmsFormHandler
afterValidation, canStartProcess, checkMissingField, getAvailableMainLanguage, getBackgroundProcess, getClosePopupUrl, getControllerContext, getEditFieldSet, getFormStep, getFormStepCount, getFormStepFinishLabel, getFormStepHiddenFields, getFormStepLabels, getFormStepPrefixProp, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenFieldML, getMainLangValue, getMainLangValueArray, getMLMap, getMLMapArray, getModalRedirect, getMonolingualValue, getMonolingualValueArray, getMultilingualMainValue, getMultilingualMainValueArray, getMultilingualMLMap, getMultilingualMLMapArray, getRedirect, getRedirectOnClosePopup, getWorkspace, init, isFieldEdition, isFieldMissing, isFormStepClickable, isPartialFieldEdition, isPopupEdition, isWorkspaceForced, mapStringArrayToMapStringList, mapStringListToMapStringArray, mustSendForbiddenOnCSRF, performFinish, performNext, performPrevious, processStatus, sanitize, sanitize, sendRedirect, sendRedirect, setEditField, setFormStep, setNoRedirect, setNoSendRedirect, setOpFinish, setOpNext, setOpPrevious, setPopupEdition, setRedirect, setRedirectOnClosePopup, setWorkspace, setWs, showCancelButton, showFinishButton, showNextButton, showPreviousButton, startProcess, updateUploadedField, updateUploadedFields, updateUploadedFields, validate, validateCSRF, validateFinish, validateNext, validatePrevious
-
Methods inherited from class com.jalios.jcms.context.JcmsJspContext
addAvoidanceLink, addBodyAttributes, addCSSHeader, addCSSHeader, addCSSHeader, addCSSHeader, addCustomHeader, addHandlebarTemplate, addHttpEquivHeader, addHttpNameHeader, addJavaScript, addJavaScript, addJavaScript, addJavaScriptCode, addPrefetchHeader, addStyleHeader, addStyleHeader, addWebAssets, checkAccess, checkAccess, checkCSRF, debugDisplayContext, disablePacker, forceEditIcon, forceUpdate, getAjaxRequestAttribute, getAjaxRequestId, getAllHeadersDiffMap, getAllHeadersMap, getAvoidanceLinks, getBackOfficeCSSHeader, getBackOfficeJavaScriptSet, getBodyAttributes, getContentForm, getCSSHeaders, getCtxCategories, getCurrentCategory, getCustomHeaders, getDocType, getFinalCSSFooterMap, getFinalCSSMap, getFinalJavaScriptSet, getFrontOfficeCSSHeader, getFrontOfficeJavaScriptSet, getHandlebarTemplates, getHttpEquivHeaders, getHttpNameHeaders, getJavaScriptCodeSet, getJavaScriptSet, getJSONBridge, getPageContext, getPageTitle, getPageZone, getPortal, getPortalCategory, getPortlet, getPublication, getStyleHeaders, getTemplateUsage, internalSetupEmptyHeader, isEditIcon, isEditIcon, isEditIconForPublish, isEditIconForPublish, isPrintView, registerDisplayContext, removeAjaxRequestAttribute, setAjaxRequestAttribute, setAjaxRequestId, setAllHeadersDiffMap, setDocType, setEditIcon, setPageContext, setPageTitle, setPageZone, setShowEditIcon, setTemplateUsage, showEditIcon, showEditIcon, showEditIcon, workaroundBrowserBaseHrefBug
-
Methods inherited from class com.jalios.jcms.context.JcmsContext
addCookie, addMsg, addMsg, addMsgSession, addMsgSession, addToastr, addToastr, addToastrSession, addToastrSession, applySelector, copyMsgListToMsgSessionList, forceWorkspaceUpdate, getBaseUrl, getBrowser, getCaddy, getContextPath, getErrorMsg, getErrorMsgList, getErrorMsgSession, getErrorMsgSessionList, getInfoMsg, getInfoMsgList, getInfoMsgSession, getInfoMsgSessionList, getLoggedMember, getMsgList, getMsgSessionList, getRequest, getResponse, getSession, getSuccessMsg, getSuccessMsgList, getSuccessMsgSession, getSuccessMsgSessionList, getToastrCollection, getToastrSessionCollection, getUploadedFile, getUploadedFileList, getUploadedFiles, getUploadedFiles, getUrlWithCommonUpdatedParams, getUserCountry, getUserLang, getUserLocale, getUserZoneId, getWarningMsg, getWarningMsgList, getWarningMsgSession, getWarningMsgSessionList, glp, isAdmin, isAdminZone, isAjaxRequest, isDBMember, isDebug, isDebugTemplate, isInFrontOffice, isLogged, isWebdavAccess, isWorkZone, removeMessage, removeMessage, removeMsg, retrieveUploadedFile, select, sendError, sendError, sendForbidden, sendForbidden, sendRedirect, sendRedirect, sendRedirect, setErrorMsg, setErrorMsg, setErrorMsgSession, setErrorMsgSession, setInfoMsg, setInfoMsg, setInfoMsgSession, setInfoMsgSession, setLoggedMember, setRequest, setResponse, setSuccessMsg, setSuccessMsg, setSuccessMsgSession, setSuccessMsgSession, setWarningMsg, setWarningMsg, setWarningMsgSession, setWarningMsgSession, updateWorkspace, validateRegexp, validateSchedule
-
-
-
-
Field Detail
-
logger
public static final org.apache.log4j.Logger logger
-
op
protected boolean op
-
opSyncOne
protected boolean opSyncOne
-
opSyncGroup
protected boolean opSyncGroup
-
opSyncLdapGroup
protected boolean opSyncLdapGroup
-
opSyncAll
protected boolean opSyncAll
-
opImportAll
protected boolean opImportAll
-
LDAP_IMPORT_ALL_DONE
public static final java.lang.String LDAP_IMPORT_ALL_DONE
- See Also:
- Constant Field Values
-
LDAP_GROUP_SYNC_DONE
public static final java.lang.String LDAP_GROUP_SYNC_DONE
- See Also:
- Constant Field Values
-
SYNC_PROGRESS_GROUP_CREATED
public static final int SYNC_PROGRESS_GROUP_CREATED
- See Also:
- Constant Field Values
-
SYNC_PROGRESS_GROUP_UPDATED
public static final int SYNC_PROGRESS_GROUP_UPDATED
- See Also:
- Constant Field Values
-
SYNC_PROGRESS_GROUP_TREATED
public static final int SYNC_PROGRESS_GROUP_TREATED
- See Also:
- Constant Field Values
-
SYNC_PROGRESS_MEMBER_CREATED
public static final int SYNC_PROGRESS_MEMBER_CREATED
- See Also:
- Constant Field Values
-
SYNC_PROGRESS_MEMBER_UPDATED
public static final int SYNC_PROGRESS_MEMBER_UPDATED
- See Also:
- Constant Field Values
-
SYNC_PROGRESS_MEMBER_TREATED
public static final int SYNC_PROGRESS_MEMBER_TREATED
- See Also:
- Constant Field Values
-
-
Method Detail
-
processAction
public boolean processAction() throws java.io.IOException
Description copied from class:JcmsFormHandler
Method to be implemented to check/validate action to be performed and process them.Default implementation is to return false. No need to call super method.
This method may NOT be invoked at all if security validation are not met.
You must ensure your handler and JSP can work properly without any code invoked in this method.
- Overrides:
processAction
in classJcmsFormHandler
- Returns:
- false if no redirection is needed, true otherwise
- Throws:
java.io.IOException
- IO Exception
-
validateSyncOne
public boolean validateSyncOne() throws java.io.IOException
- Throws:
java.io.IOException
-
performSyncOne
public void performSyncOne()
Synchronize current member with LDAP.
-
validateSyncGroup
public boolean validateSyncGroup() throws java.io.IOException
- Throws:
java.io.IOException
-
performSyncGroup
public void performSyncGroup()
Synchronize members of current group with LDAP.
-
validateSyncLdapGroup
public boolean validateSyncLdapGroup() throws java.io.IOException
- Returns:
- true the syncldapgroup operation can be performed
- Throws:
java.io.IOException
- if sendRedirect/sendForbidden failed- Since:
- jcms-5.7.0
-
performSyncLdapGroup
public void performSyncLdapGroup()
Synchronize the LDAP group and retrieve all its member from LDAP.- Since:
- jcms-5.7.0
-
validateSyncAll
public boolean validateSyncAll() throws java.io.IOException
- Throws:
java.io.IOException
-
performSyncAll
public void performSyncAll()
Synchronize all members with LDAP.
-
validateImportAll
public boolean validateImportAll() throws java.io.IOException
- Throws:
java.io.IOException
-
performImportAll
public void performImportAll()
Import all LDAP members and their group in JCMS.
-
synchronizeMembers
public static void synchronizeMembers(java.util.Set<Member> memberSet, JcmsJspContext ctxt)
Synchronize all LDAP account in the specified Set of Member.- Parameters:
memberSet
- the set of Member to synchronize (only LDAP account will be synchronized)ctxt
- the current JcmsJspContext (used to retrieve logged member as opAuthor, request & session for error message)
-
synchronizeMembers
public static void synchronizeMembers(java.util.Iterator<Member> mbrIterator, JcmsJspContext ctxt)
Synchronize all LDAP account return by the specified Iterator of Member.- Parameters:
mbrIterator
- an iterator of Member to synchronize (only LDAP account will be synchronized)ctxt
- the current JcmsJspContext (used to retrieve logged member as opAuthor, request & session for error message)- Since:
- jcms-10.0.1 / JCMS-6340
-
synchronizeMembers
public static void synchronizeMembers(java.util.Iterator<? extends Member> mbrIterator, Member opAuthor, java.util.function.Consumer<LDAPMapper> onLdapError, java.util.function.Consumer<Member> onMemberSkipped, java.util.function.Consumer<Member> onMemberSynced)
Synchronize all LDAP account return by the specified Iterator of Member.- Parameters:
mbrIterator
- an iterator of Member to synchronize (only LDAP account will be synchronized)opAuthor
- the Member to use as opAuthor of synchronization operationonLdapError
- function invoked when LDAP connexion could not be establishedonMemberSkipped
- function invoked when member was skipped (not ldap, not account, ldap not connected, ...)onMemberSynced
- function invoked when member synchronization was invoked (with or without any change being made)- Since:
- jcms-10.0.8
-
clearLdapGroupBeingSync
public static void clearLdapGroupBeingSync(javax.servlet.http.HttpSession session)
-
getLdapGroupBeingSync
public static Group getLdapGroupBeingSync(javax.servlet.http.HttpSession session)
If LDAP synchronization was request on a LDAP group, return the LDAP Group being synchronized. otherwise return null.- Parameters:
session
- the current HttpSession- Returns:
- the group being synchronized
-
updateLdapGroupSyncProgressInformation
public static void updateLdapGroupSyncProgressInformation(int action, Data data)
This methods adds information regarding the current LDAP synchronization progress to the session. It allows us to retrieve this information usinggetLdapGroupSyncProgressInformation()
.
This method MUST be call from the thread launched by SyncLdapHandler. If called from another thread, this method as no effect.- Parameters:
action
- the value to updated, choosen from :SYNC_PROGRESS_GROUP_CREATED
to increment nbr of group createdSYNC_PROGRESS_GROUP_UPDATED
to increment nbr of group updated}SYNC_PROGRESS_GROUP_TREATED
to increment nbr of group processed}SYNC_PROGRESS_MEMBER_CREATED
to increment nbr of member created}SYNC_PROGRESS_MEMBER_UPDATED
to increment nbr of member updated}SYNC_PROGRESS_MEMBER_TREATED
to increment nbr of member processed}
data
- the Data being processed (needed to make sure a data is not being treated twice)
-
getLdapGroupSyncProgressInformation
public static java.lang.String getLdapGroupSyncProgressInformation()
Retrieve progress information of ldap group synchronization.- Returns:
- a String containing information about current operation progress
or null if operation is over
This method MUST be call from a thread with access to
Channel.getCurrentServletRequest()
.
-
setOpSyncOne
public void setOpSyncOne(java.lang.String v)
-
setOpSyncGroup
public void setOpSyncGroup(java.lang.String v)
-
setOpSyncLdapGroup
public void setOpSyncLdapGroup(java.lang.String v)
-
setOpSyncAll
public void setOpSyncAll(java.lang.String v)
-
setOpImportAll
public void setOpImportAll(java.lang.String v)
-
setId
public void setId(java.lang.String id)
-
setGid
public void setGid(java.lang.String gid)
-
setLdapGid
public void setLdapGid(java.lang.String gid)
-
-