All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.internet2.middleware.changelogconsumer.googleapps.utils.GoogleAppsSyncProperties Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright 2015 Internet2
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package edu.internet2.middleware.changelogconsumer.googleapps.utils;

import com.google.api.services.directory.DirectoryScopes;
import com.google.api.services.groupssettings.model.Groups;
import edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig;
import edu.internet2.middleware.grouper.util.GrouperUtil;

import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.util.Base64;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Collects all the various properties and makes them available to the consumer and fullSync.
 *
 * @author John Gasper, Unicon
 */
public class GoogleAppsSyncProperties {

    private static final Logger LOG = LoggerFactory.getLogger(GoogleAppsSyncProperties.class);
    private static final String PARAMETER_NAMESPACE = "changeLog.consumer.";

    private String serviceAccountPKCS12FilePath;
    private PrivateKey serviceAccountPrivateKey;
    private String serviceAccountEmail;
    private String serviceImpersonationUser;

    private String googleDomain;

    private String groupIdentifierExpression;
    private String subjectIdentifierExpression;

    /** how long should the Google caches be valid */
    private int googleUserCacheValidity;
    private int googleGroupCacheValidity;

    /** should the Google caches be pre-filled at start-up to take advantage of bath queries */
    private boolean prefillGoogleCachesForConsumer;
    private boolean prefillGoogleCachesForFullSync;

    private boolean retryOnError;

    /** Whether or not to provision users. */
    private boolean provisionUsers;
    
    /** Whether or not to add external users to groups. */
    private boolean addExternalUsersToGroups;

    /** Whether or not to de-provision users. */
    private boolean deprovisionUsers;

    /** Whether to not use "split" to parse name or the subject API is used to get the name, see subjectGivenNameField and subjectSurnameField */
    private boolean simpleSubjectNaming;

    /** The givenName field to lookup with the Subject API */
    private String subjectGivenNameField;

    /** The surname field to lookup with the Subject API */
    private String subjectSurnameField;

    /** should the provisioned users be in the GAL*/
    private Groups defaultGroupSettings = new Groups();

    /** should the provisioned users be in the GAL*/
    private boolean includeUserInGlobalAddressList;

    /** What to do with deleted Groups: archive, delete, ignore (default) */
    private String handleDeletedGroup;

    /** Which type of privilege becomes an owner: none (default), admin, update, both */
    private String whoCanManage;

    /** A Java Expression Language (JExl) that returns 'MEMBER' or 'MANAGER' */
    private String whoCanManageJexl;

    private String googleGroupFilter;

    private boolean ignoreExtraGoogleMembers;
    
    private boolean ignoreExtraGoogleGroups;

    private boolean useGroupSettings;

    /** Newly deleted objects aren't always removed ASAP, nor are newly created/updated object ready immediately */
    private int recentlyManipulatedQueueSize;
    private int recentlyManipulatedQueueDelay;
    
    private String[] directoryScopes;
    
    public static final String[] defaultDirectoryScopes = {DirectoryScopes.ADMIN_DIRECTORY_USER, DirectoryScopes.ADMIN_DIRECTORY_GROUP};

    /**
     * Host to use for proxy, if necessary
     */
    private String proxyHost;

    /**
     * Port to use for proxy, if necessary
     */
    private int proxyPort;

    public GoogleAppsSyncProperties(String consumerName) {
        final String qualifiedParameterNamespace = PARAMETER_NAMESPACE + consumerName + ".";

        LOG.debug("Google Apps Consumer - Setting properties for {} consumer/provisioner.", consumerName);

        serviceAccountPKCS12FilePath =
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "serviceAccountPKCS12FilePath", null);
        LOG.debug("Google Apps Consumer - Setting Google serviceAccountPKCS12FilePath to {}", serviceAccountPKCS12FilePath);
        
        String serviceAccountPrivateKeyPEM = GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "serviceAccountPrivateKeyPEM", null);

        if (StringUtils.isBlank(serviceAccountPKCS12FilePath) && StringUtils.isBlank(serviceAccountPrivateKeyPEM)) {
          throw new RuntimeException("Must specify serviceAccountPKCS12FilePath or serviceAccountPrivateKeyPEM");
        }
        
        if (StringUtils.isNotBlank(serviceAccountPKCS12FilePath) && StringUtils.isNotBlank(serviceAccountPrivateKeyPEM)) {
          throw new RuntimeException("Must specify serviceAccountPKCS12FilePath or serviceAccountPrivateKeyPEM");
        }
        
        if (!StringUtils.isBlank(serviceAccountPrivateKeyPEM)) {
          serviceAccountPrivateKeyPEM = serviceAccountPrivateKeyPEM.replaceAll("\n", "").replace("-----BEGIN PRIVATE KEY-----", "").replace("-----END PRIVATE KEY-----", "");
          PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(serviceAccountPrivateKeyPEM));
          KeyFactory kf;
          try {
            kf = KeyFactory.getInstance("RSA");
            serviceAccountPrivateKey = kf.generatePrivate(keySpec);
          } catch (Exception e) {
            throw new RuntimeException(e);
          }
        }

        serviceAccountEmail =
                GrouperLoaderConfig.retrieveConfig().propertyValueStringRequired(qualifiedParameterNamespace + "serviceAccountEmail");
        LOG.debug("Google Apps Consumer - Setting Google serviceAccountEmail to {}", serviceAccountEmail);

        serviceImpersonationUser =
                GrouperLoaderConfig.retrieveConfig().propertyValueStringRequired(qualifiedParameterNamespace + "serviceImpersonationUser");
        LOG.debug("Google Apps Consumer - Setting Google serviceImpersonationUser to {}", serviceImpersonationUser);

        googleDomain =
                GrouperLoaderConfig.retrieveConfig().propertyValueStringRequired(qualifiedParameterNamespace + "domain");
        LOG.debug("Google Apps Consumer - Setting Google domain to {}", googleDomain);

        groupIdentifierExpression =
                GrouperLoaderConfig.retrieveConfig().propertyValueStringRequired(qualifiedParameterNamespace + "groupIdentifierExpression");
        LOG.debug("Google Apps Consumer - Setting groupIdentifierExpression to {}", groupIdentifierExpression);

        subjectIdentifierExpression =
                GrouperLoaderConfig.retrieveConfig().propertyValueStringRequired(qualifiedParameterNamespace + "subjectIdentifierExpression");
        LOG.debug("Google Apps Consumer - Setting subjectIdentifierExpression to {}", subjectIdentifierExpression);

        provisionUsers =
                GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "provisionUsers", false);
        LOG.debug("Google Apps Consumer - Setting provisionUser to {}", provisionUsers);

        addExternalUsersToGroups =
            GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "addExternalUsersToGroups", true);
        LOG.debug("Google Apps Consumer - Setting addExternalUsersToGroups to {}", addExternalUsersToGroups);
        
        deprovisionUsers =
                GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "deprovisionUsers", false);
        LOG.debug("Google Apps Consumer - Setting deprovisionUser to {}", deprovisionUsers);

        includeUserInGlobalAddressList =
                GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "includeUserInGlobalAddressList", true);
        LOG.debug("Google Apps Consumer - Setting includeUserInGlobalAddressList to {}", includeUserInGlobalAddressList);

        simpleSubjectNaming =
                GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "simpleSubjectNaming", true);
        LOG.debug("Google Apps Consumer - Setting simpleSubjectNaming to {}", simpleSubjectNaming);

        subjectGivenNameField =
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "subjectGivenNameField", "givenName");
        LOG.debug("Google Apps Consumer - Setting subjectGivenNameField to {}", subjectGivenNameField);

        subjectSurnameField =
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "subjectSurnameField" ,"sn");
        LOG.debug("Google Apps Consumer - Setting subjectSurnameField to {}", subjectSurnameField);

        googleUserCacheValidity =
                GrouperLoaderConfig.retrieveConfig().propertyValueInt(qualifiedParameterNamespace + "googleUserCacheValidityPeriod", 30);
        LOG.debug("Google Apps Consumer - Setting googleUserCacheValidityPeriod to {}", googleUserCacheValidity);

        googleGroupCacheValidity =
                GrouperLoaderConfig.retrieveConfig().propertyValueInt(qualifiedParameterNamespace + "googleGroupCacheValidityPeriod", 30);
        LOG.debug("Google Apps Consumer - Setting googleGroupCacheValidityPeriod to {}", googleGroupCacheValidity);

        prefillGoogleCachesForConsumer = GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "prefillGoogleCachesForConsumer", false);
        LOG.debug("Google Apps Consumer - Setting prefillGoogleCachesForConsumer to {}", prefillGoogleCachesForConsumer);

        prefillGoogleCachesForFullSync = GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "prefillGoogleCachesForFullSync", false);
        LOG.debug("Google Apps Consumer - Setting prefillGoogleCachesForFullSync to {}", prefillGoogleCachesForFullSync);

        handleDeletedGroup =
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "handleDeletedGroup", "ignore");
        LOG.debug("Google Apps Consumer - Setting handleDeletedGroup to {}", handleDeletedGroup);

        whoCanManage =
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanManage", "none");
        LOG.debug("Google Apps Consumer - Setting whoCanManage to {}", whoCanManage);

        whoCanManageJexl =
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanManageJexl", "");
        LOG.debug("Google Apps Consumer - Setting whoCanManageJexl to {}", whoCanManage);

        recentlyManipulatedQueueSize =
                GrouperLoaderConfig.retrieveConfig().propertyValueInt(qualifiedParameterNamespace + "recentlyManipulatedQueueSize", 5);
        LOG.debug("Google Apps Consumer - Setting recentlyManipulatedQueueSize to {}", recentlyManipulatedQueueSize);

        recentlyManipulatedQueueDelay =
                GrouperLoaderConfig.retrieveConfig().propertyValueInt(qualifiedParameterNamespace + "recentlyManipulatedQueueDelay", 2);
        LOG.debug("Google Apps Consumer - Setting recentlyManipulatedQueueDelay to {}", recentlyManipulatedQueueDelay);

        useGroupSettings =
                GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "useGroupSettings", true);
        LOG.debug("Google Apps Consumer - Setting useGroupSettings to {}", useGroupSettings);


        defaultGroupSettings.setWhoCanJoin(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanJoin", "CAN_REQUEST_TO_JOIN"));
        LOG.debug("Google Apps Consumer - Setting whoCanJoin to {}", defaultGroupSettings.getWhoCanJoin());

        defaultGroupSettings.setWhoCanViewMembership(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanViewMembership", "ALL_IN_DOMAIN_CAN_VIEW"));
        LOG.debug("Google Apps Consumer - Setting whoCanViewMembership to {}", defaultGroupSettings.getWhoCanViewMembership());

        defaultGroupSettings.setWhoCanViewGroup(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanViewGroup", "ALL_MEMBERS_CAN_VIEW"));
        LOG.debug("Google Apps Consumer - Setting whoCanViewGroup to {}", defaultGroupSettings.getWhoCanViewGroup());

        defaultGroupSettings.setWhoCanInvite(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanInvite", "ALL_MANAGERS_CAN_INVITE"));
        LOG.debug("Google Apps Consumer - Setting whoCanInvite to {}", defaultGroupSettings.getWhoCanInvite());

        defaultGroupSettings.setWhoCanAdd(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanAdd", "NONE_CAN_ADD"));
        LOG.debug("Google Apps Consumer - Setting whoCanAdd to {}", defaultGroupSettings.getWhoCanAdd());

        defaultGroupSettings.setAllowExternalMembers(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "allowExternalMembers", "false"));
        LOG.debug("Google Apps Consumer - Setting allowExternalMembers to {}", defaultGroupSettings.getAllowExternalMembers());

        defaultGroupSettings.setWhoCanPostMessage(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanPostMessage", "ALL_IN_DOMAIN_CAN_POST"));
        LOG.debug("Google Apps Consumer - Setting whoCanPostMessage to {}", defaultGroupSettings.getWhoCanPostMessage());
        
        defaultGroupSettings.setWhoCanModerateMembers(
            GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanModerateMembers", "OWNERS_AND_MANAGERS"));
        LOG.debug("Google Apps Consumer - Setting whoCanModerateMembers to {}", defaultGroupSettings.getWhoCanModerateMembers());

        defaultGroupSettings.setAllowWebPosting(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "allowWebPosting", "true"));
        LOG.debug("Google Apps Consumer - Setting allowWebPosting to {}", defaultGroupSettings.getAllowWebPosting());

        defaultGroupSettings.setPrimaryLanguage(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "primaryLanguage", "en"));
        LOG.debug("Google Apps Consumer - Setting primaryLanguage to {}", defaultGroupSettings.getPrimaryLanguage());

        defaultGroupSettings.setMaxMessageBytes(
                GrouperLoaderConfig.retrieveConfig().propertyValueInt(qualifiedParameterNamespace + "maxMessageBytes", 10240));
        LOG.debug("Google Apps Consumer - Setting maxMessageBytes to {}", defaultGroupSettings.getMaxMessageBytes());

        defaultGroupSettings.setIsArchived(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "isArchived", "true"));
        LOG.debug("Google Apps Consumer - Setting isArchived to {}", defaultGroupSettings.getIsArchived());

        defaultGroupSettings.setMessageModerationLevel(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "messageModerationLevel", "MODERATE_NONE"));
        LOG.debug("Google Apps Consumer - Setting messageModerationLevel to {}", defaultGroupSettings.getMessageModerationLevel());

        defaultGroupSettings.setSpamModerationLevel(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "spamModerationLevel", "ALLOW"));
        LOG.debug("Google Apps Consumer - Setting spamModerationLevel to {}", defaultGroupSettings.getSpamModerationLevel());

        defaultGroupSettings.setReplyTo(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "replyTo", "REPLY_TO_IGNORE"));
        LOG.debug("Google Apps Consumer - Setting replyTo to {}", defaultGroupSettings.getReplyTo());

        defaultGroupSettings.setCustomReplyTo(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "customReplyTo", ""));
        LOG.debug("Google Apps Consumer - Setting customReplyTo to {}", defaultGroupSettings.getCustomReplyTo());

        defaultGroupSettings.setIncludeCustomFooter(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "includeCustomFooter", "false"));
        LOG.debug("Google Apps Consumer - Setting includeCustomFooter to {}", defaultGroupSettings.getIncludeCustomFooter());

        defaultGroupSettings.setCustomFooterText(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "customFooterText", ""));
        LOG.debug("Google Apps Consumer - Setting customFooterText to {}", defaultGroupSettings.getCustomFooterText());

        defaultGroupSettings.setSendMessageDenyNotification(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "sendMessageDenyNotification", "true"));
        LOG.debug("Google Apps Consumer - Setting sendMessageDenyNotification to {}", defaultGroupSettings.getSendMessageDenyNotification());

        defaultGroupSettings.setDefaultMessageDenyNotificationText(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "defaultMessageDenyNotificationText", "Your message has been denied."));
        LOG.debug("Google Apps Consumer - Setting defaultMessageDenyNotificationText to {}", defaultGroupSettings.getDefaultMessageDenyNotificationText());

        defaultGroupSettings.setShowInGroupDirectory(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "showInGroupDirectory", "false"));
        LOG.debug("Google Apps Consumer - Setting showInGroupDirectory to {}", defaultGroupSettings.getShowInGroupDirectory());

        defaultGroupSettings.setAllowGoogleCommunication(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "allowGoogleCommunication", "false"));
        LOG.debug("Google Apps Consumer - Setting allowGoogleCommunication to {}", defaultGroupSettings.getAllowGoogleCommunication());

        defaultGroupSettings.setMembersCanPostAsTheGroup(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "membersCanPostAsTheGroup", "false"));
        LOG.debug("Google Apps Consumer - Setting membersCanPostAsTheGroup to {}", defaultGroupSettings.getMembersCanPostAsTheGroup());

        defaultGroupSettings.setMessageDisplayFont(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "messageDisplayFont", "DEFAULT_FONT"));
        LOG.debug("Google Apps Consumer - Setting messageDisplayFont to {}", defaultGroupSettings.getMessageDisplayFont());

        defaultGroupSettings.setIncludeInGlobalAddressList(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "includeInGlobalAddressList", "true"));
        LOG.debug("Google Apps Consumer - Setting includeInGlobalAddressList to {}", defaultGroupSettings.getIncludeInGlobalAddressList());

        defaultGroupSettings.setWhoCanLeaveGroup(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanLeaveGroup", "NONE_CAN_LEAVE"));
        LOG.debug("Google Apps Consumer - Setting whoCanLeaveGroup to {}", defaultGroupSettings.getWhoCanLeaveGroup());

        defaultGroupSettings.setWhoCanContactOwner(
                GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "whoCanContactOwner", "ALL_MEMBERS_CAN_CONTACT"));
        LOG.debug("Google Apps Consumer - Setting whoCanContactOwner to {}", defaultGroupSettings.getWhoCanContactOwner());


        retryOnError = GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "retryOnError", false);
        LOG.debug("Google Apps Consumer - Setting retryOnError to {}", retryOnError);

        googleGroupFilter = GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "googleGroupFilter", ".*");
        LOG.debug("Google Apps Consumer - Setting googleGroupFilter to {}", googleGroupFilter);

        ignoreExtraGoogleMembers = GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "ignoreExtraGoogleMembers", true);
        LOG.debug("Google Apps Consumer - Setting ignoreExtraGoogleMembers to {}", ignoreExtraGoogleMembers);

        ignoreExtraGoogleGroups = GrouperLoaderConfig.retrieveConfig().propertyValueBoolean(qualifiedParameterNamespace + "ignoreExtraGoogleGroups", false);
        LOG.debug("Google Apps Consumer - Setting ignoreExtraGoogleGroups to {}", ignoreExtraGoogleGroups);

        this.proxyHost = GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "proxyHost", null);
        this.proxyPort = GrouperLoaderConfig.retrieveConfig().propertyValueInt(qualifiedParameterNamespace + "proxyPort", 0);
        if (this.proxyHost != null && this.proxyPort != 0) {
            LOG.debug("Google Apps Consumer - Setting proxy to {}:{}", this.proxyHost, this.proxyPort);
        }
        
        String scopesOverride = GrouperLoaderConfig.retrieveConfig().propertyValueString(qualifiedParameterNamespace + "directoryScopes", null);
        if (StringUtils.isBlank(scopesOverride)) {
          this.directoryScopes = defaultDirectoryScopes;
        } else {
          this.directoryScopes = GrouperUtil.splitTrim(scopesOverride, ",");
        }
    }

    public boolean isRetryOnError() {
        return retryOnError;
    }

    public String getHandleDeletedGroup() {
        return handleDeletedGroup;
    }

    public boolean shouldIncludeUserInGlobalAddressList() {
        return includeUserInGlobalAddressList;
    }

    public Groups getDefaultGroupSettings() {
        return defaultGroupSettings;
    }

    public String getSubjectSurnameField() {
        return subjectSurnameField;
    }

    public String getSubjectGivenNameField() {
        return subjectGivenNameField;
    }

    public boolean useSimpleSubjectNaming() {
        return simpleSubjectNaming;
    }

    public boolean shouldDeprovisionUsers() {
        return deprovisionUsers;
    }

    public boolean shouldProvisionUsers() {
        return provisionUsers;
    }
    
    public boolean getAddExternalUsersToGroups() {
      return addExternalUsersToGroups;
    }

    public int getGoogleGroupCacheValidity() {
        return googleGroupCacheValidity;
    }

    public int getGoogleUserCacheValidity() {
        return googleUserCacheValidity;
    }

    public boolean getprefillGoogleCachesForConsumer() {
        return prefillGoogleCachesForConsumer;
    }

    public boolean getprefillGoogleCachesForFullSync() {
        return prefillGoogleCachesForFullSync;
    }

    public String getSubjectIdentifierExpression() {
        return subjectIdentifierExpression;
    }

    public String getGroupIdentifierExpression() {
        return groupIdentifierExpression;
    }

    public String getGoogleDomain() {
        return googleDomain;
    }

    public String getServiceImpersonationUser() {
        return serviceImpersonationUser;
    }

    public String getServiceAccountEmail() {
        return serviceAccountEmail;
    }

    public String getServiceAccountPKCS12FilePath() {
        return serviceAccountPKCS12FilePath;
    }
    
    public PrivateKey getServiceAccountPrivateKey() {
      return serviceAccountPrivateKey;
    }

    public String getWhoCanManageJexl() {
        return whoCanManageJexl;
    }

    public String getWhoCanManage() {
        return whoCanManage;
    }

    public String getGoogleGroupFilter() { return googleGroupFilter; }

    public boolean shouldIgnoreExtraGoogleMembers() { return ignoreExtraGoogleMembers; }
    
    public boolean shouldIgnoreExtraGoogleGroups() { return ignoreExtraGoogleGroups; }

    public boolean useGroupSettings() { return useGroupSettings; }

    public int getRecentlyManipulatedQueueSize() {
        return recentlyManipulatedQueueSize;
    }

    public int getRecentlyManipulatedQueueDelay() {
        return recentlyManipulatedQueueDelay;
    }

    public String getProxyHost() {
        return proxyHost;
    }

    public int getProxyPort() {
        return proxyPort;
    }

    public String[] getDirectoryScopes() {
      return directoryScopes;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy