/**
* ==========================================================================================
* = JAHIA'S DUAL LICENSING - IMPORTANT INFORMATION =
* ==========================================================================================
*
* http://www.jahia.com
*
* Copyright (C) 2002-2017 Jahia Solutions Group SA. All rights reserved.
*
* THIS FILE IS AVAILABLE UNDER TWO DIFFERENT LICENSES:
* 1/GPL OR 2/JSEL
*
* 1/ GPL
* ==================================================================================
*
* IF YOU DECIDE TO CHOOSE THE GPL LICENSE, YOU MUST COMPLY WITH THE FOLLOWING TERMS:
*
* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*
* 2/ JSEL - Commercial and Supported Versions of the program
* ===================================================================================
*
* IF YOU DECIDE TO CHOOSE THE JSEL LICENSE, YOU MUST COMPLY WITH THE FOLLOWING TERMS:
*
* Alternatively, commercial and supported versions of the program - also known as
* Enterprise Distributions - must be used in accordance with the terms and conditions
* contained in a separate written agreement between you and Jahia Solutions Group SA.
*
* If you are unsure which license is appropriate for your use,
* please contact the sales department at sales@jahia.com.
*/
package org.jahia.services.usermanager.ldap.config;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.util.Map;
import java.util.Set;
/**
* Abstract config provide by the ldap config file
* @author kevan
*/
public abstract class AbstractConfig {
private static final int DEFAULT_SEARCH_COUNT_LIMIT = 100;
private static final int DEFAULT_MAX_TIMEOUT_COUNT = 3;
private String url;
private String publicBindDn;
private String publicBindPassword;
private String authentificationMode = "simple";
private String contextFactory = "com.sun.jndi.ldap.LdapCtxFactory";
private String ldapConnectPool = "apache-commons";
private String ldapConnectTimeout = "5000";
private String ldapReadTimeout = "5000";
private String ldapConnectPoolAuthentication = "none simple";
private String ldapConnectPoolTimeout;
private String ldapConnectPoolDebug;
private String ldapConnectPoolInitSize;
private String ldapConnectPoolMaxSize;
private String ldapConnectPoolPrefSize;
private Integer ldapConnectPoolMaxActive;
private Integer ldapConnectPoolMaxIdle;
private Integer ldapConnectPoolMaxTotal;
private Integer ldapConnectPoolMaxWait;
private Integer ldapConnectPoolMinEvictableIdleTimeMillis;
private Integer ldapConnectPoolMinIdle;
private Integer ldapConnectPoolNumTestsPerEvictionRun;
private Boolean ldapConnectPoolTestOnBorrow;
private Boolean ldapConnectPoolTestOnReturn;
private Boolean ldapConnectPoolTestWhileIdle;
private Long ldapConnectPoolTimeBetweenEvictionRunsMillis;
private String ldapConnectPoolWhenExhaustedAction;
private int maxLdapTimeoutCountBeforeDisconnect = DEFAULT_MAX_TIMEOUT_COUNT;
private long searchCountlimit = DEFAULT_SEARCH_COUNT_LIMIT;
/**
* Fixed query filter that is used when searching for users/groups to filter out "unwanted" entries.
*/
private String searchFilter;
private String searchObjectclass;
private boolean searchAttributeInDn = false;
private boolean canGroupContainSubGroups = false;
private Set<String> searchWildcardsAttributes = Sets.newHashSet();
private Map<String, String> attributesMapper = Maps.newHashMap();
private String targetSite;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPublicBindDn() {
return publicBindDn;
}
public void setPublicBindDn(String publicBindDn) {
this.publicBindDn = publicBindDn;
}
public String getPublicBindPassword() {
return publicBindPassword;
}
public void setPublicBindPassword(String publicBindPassword) {
this.publicBindPassword = publicBindPassword;
}
public String getAuthentificationMode() {
return authentificationMode;
}
public void setAuthentificationMode(String authentificationMode) {
this.authentificationMode = authentificationMode;
}
public String getContextFactory() {
return contextFactory;
}
public void setContextFactory(String contextFactory) {
this.contextFactory = contextFactory;
}
public String getLdapConnectPool() {
return ldapConnectPool;
}
public void setLdapConnectPool(String ldapConnectPool) {
this.ldapConnectPool = ldapConnectPool;
}
public String getLdapConnectTimeout() {
return ldapConnectTimeout;
}
public void setLdapConnectTimeout(String ldapConnectTimeout) {
this.ldapConnectTimeout = ldapConnectTimeout;
}
public String getLdapReadTimeout() {
return ldapReadTimeout;
}
public void setLdapReadTimeout(String ldapReadTimeout) {
this.ldapReadTimeout = ldapReadTimeout;
}
public String getLdapConnectPoolAuthentication() {
return ldapConnectPoolAuthentication;
}
public void setLdapConnectPoolAuthentication(String ldapConnectPoolAuthentication) {
this.ldapConnectPoolAuthentication = ldapConnectPoolAuthentication;
}
public String getLdapConnectPoolTimeout() {
return ldapConnectPoolTimeout;
}
public void setLdapConnectPoolTimeout(String ldapConnectPoolTimeout) {
this.ldapConnectPoolTimeout = ldapConnectPoolTimeout;
}
public String getLdapConnectPoolDebug() {
return ldapConnectPoolDebug;
}
public void setLdapConnectPoolDebug(String ldapConnectPoolDebug) {
this.ldapConnectPoolDebug = ldapConnectPoolDebug;
}
public String getLdapConnectPoolInitSize() {
return ldapConnectPoolInitSize;
}
public void setLdapConnectPoolInitSize(String ldapConnectPoolInitSize) {
this.ldapConnectPoolInitSize = ldapConnectPoolInitSize;
}
public String getLdapConnectPoolMaxSize() {
return ldapConnectPoolMaxSize;
}
public void setLdapConnectPoolMaxSize(String ldapConnectPoolMaxSize) {
this.ldapConnectPoolMaxSize = ldapConnectPoolMaxSize;
}
public String getLdapConnectPoolPrefSize() {
return ldapConnectPoolPrefSize;
}
public void setLdapConnectPoolPrefSize(String ldapConnectPoolPrefSize) {
this.ldapConnectPoolPrefSize = ldapConnectPoolPrefSize;
}
public Integer getLdapConnectPoolMaxActive() {
return ldapConnectPoolMaxActive;
}
public void setLdapConnectPoolMaxActive(Integer ldapConnectPoolMaxActive) {
this.ldapConnectPoolMaxActive = ldapConnectPoolMaxActive;
}
public Integer getLdapConnectPoolMaxIdle() {
return ldapConnectPoolMaxIdle;
}
public void setLdapConnectPoolMaxIdle(Integer ldapConnectPoolMaxIdle) {
this.ldapConnectPoolMaxIdle = ldapConnectPoolMaxIdle;
}
public Integer getLdapConnectPoolMaxTotal() {
return ldapConnectPoolMaxTotal;
}
public void setLdapConnectPoolMaxTotal(Integer ldapConnectPoolMaxTotal) {
this.ldapConnectPoolMaxTotal = ldapConnectPoolMaxTotal;
}
public Integer getLdapConnectPoolMaxWait() {
return ldapConnectPoolMaxWait;
}
public void setLdapConnectPoolMaxWait(Integer ldapConnectPoolMaxWait) {
this.ldapConnectPoolMaxWait = ldapConnectPoolMaxWait;
}
public Integer getLdapConnectPoolMinEvictableIdleTimeMillis() {
return ldapConnectPoolMinEvictableIdleTimeMillis;
}
public void setLdapConnectPoolMinEvictableIdleTimeMillis(Integer ldapConnectPoolMinEvictableIdleTimeMillis) {
this.ldapConnectPoolMinEvictableIdleTimeMillis = ldapConnectPoolMinEvictableIdleTimeMillis;
}
public Integer getLdapConnectPoolMinIdle() {
return ldapConnectPoolMinIdle;
}
public void setLdapConnectPoolMinIdle(Integer ldapConnectPoolMinIdle) {
this.ldapConnectPoolMinIdle = ldapConnectPoolMinIdle;
}
public Integer getLdapConnectPoolNumTestsPerEvictionRun() {
return ldapConnectPoolNumTestsPerEvictionRun;
}
public void setLdapConnectPoolNumTestsPerEvictionRun(Integer ldapConnectPoolNumTestsPerEvictionRun) {
this.ldapConnectPoolNumTestsPerEvictionRun = ldapConnectPoolNumTestsPerEvictionRun;
}
public Boolean getLdapConnectPoolTestOnBorrow() {
return ldapConnectPoolTestOnBorrow;
}
public void setLdapConnectPoolTestOnBorrow(Boolean ldapConnectPoolTestOnBorrow) {
this.ldapConnectPoolTestOnBorrow = ldapConnectPoolTestOnBorrow;
}
public Boolean getLdapConnectPoolTestOnReturn() {
return ldapConnectPoolTestOnReturn;
}
public void setLdapConnectPoolTestOnReturn(Boolean ldapConnectPoolTestOnReturn) {
this.ldapConnectPoolTestOnReturn = ldapConnectPoolTestOnReturn;
}
public Boolean getLdapConnectPoolTestWhileIdle() {
return ldapConnectPoolTestWhileIdle;
}
public void setLdapConnectPoolTestWhileIdle(Boolean ldapConnectPoolTestWhileIdle) {
this.ldapConnectPoolTestWhileIdle = ldapConnectPoolTestWhileIdle;
}
public Long getLdapConnectPoolTimeBetweenEvictionRunsMillis() {
return ldapConnectPoolTimeBetweenEvictionRunsMillis;
}
public void setLdapConnectPoolTimeBetweenEvictionRunsMillis(Long ldapConnectPoolTimeBetweenEvictionRunsMillis) {
this.ldapConnectPoolTimeBetweenEvictionRunsMillis = ldapConnectPoolTimeBetweenEvictionRunsMillis;
}
public String getLdapConnectPoolWhenExhaustedAction() {
return ldapConnectPoolWhenExhaustedAction;
}
public void setLdapConnectPoolWhenExhaustedAction(String ldapConnectPoolWhenExhaustedAction) {
this.ldapConnectPoolWhenExhaustedAction = ldapConnectPoolWhenExhaustedAction;
}
public int getMaxLdapTimeoutCountBeforeDisconnect() {
return maxLdapTimeoutCountBeforeDisconnect;
}
public void setMaxLdapTimeoutCountBeforeDisconnect(int maxLdapTimeoutCountBeforeDisconnect) {
this.maxLdapTimeoutCountBeforeDisconnect = maxLdapTimeoutCountBeforeDisconnect;
}
public long getSearchCountlimit() {
return searchCountlimit;
}
public void setSearchCountlimit(long searchCountlimit) {
this.searchCountlimit = searchCountlimit;
}
public String getSearchObjectclass() {
return searchObjectclass;
}
public void setSearchObjectclass(String searchObjectclass) {
this.searchObjectclass = searchObjectclass;
}
public Set<String> getSearchWildcardsAttributes() {
return searchWildcardsAttributes;
}
public void setSearchWildcardsAttributes(Set<String> searchWildcardsAttributes) {
this.searchWildcardsAttributes = searchWildcardsAttributes;
}
public Map<String, String> getAttributesMapper() {
return attributesMapper;
}
public void setAttributesMapper(Map<String, String> attributesMapper) {
this.attributesMapper = attributesMapper;
}
public boolean isSearchAttributeInDn() {
return searchAttributeInDn;
}
public void setSearchAttributeInDn(boolean searchAttributeInDn) {
this.searchAttributeInDn = searchAttributeInDn;
}
public boolean isCanGroupContainSubGroups() {
return canGroupContainSubGroups;
}
public void setCanGroupContainSubGroups(boolean canGroupContainSubGroups) {
this.canGroupContainSubGroups = canGroupContainSubGroups;
}
public String getTargetSite() {
return targetSite;
}
public void setTargetSite(String targetSite) {
this.targetSite = targetSite;
}
/**
* Returns fixed query filter that is used when searching for users/groups to filter out "unwanted" entries.
*
* @return fixed query filter that is used when searching for users/groups to filter out "unwanted" entries
*/
public String getSearchFilter() {
return searchFilter;
}
/**
* Sets the fixed query filter for search.
*
* @param searchFilter string in LDAP filter format
* @see #getSearchFilter()
*/
public void setSearchFilter(String searchFilter) {
this.searchFilter = (searchFilter != null && searchFilter.length() > 0 ? searchFilter : null);
}
}