package com.l7tech.gateway.common.siteminder;

import java.util.Map;

public interface SiteMinderConfig {
   String SERVER_ADDRESS_PROPNAME = "address";
   String SERVER_AUTHN_PORT_PROPNAME = "authentication.port";
   String SERVER_AUTHZ_PORT_PROPNAME = "authorization.port";
   String SERVER_ACCT_PORT_PROPNAME = "accounting.port";
   String SERVER_CONN_MIN_PROPNAME = "connection.min";
   String SERVER_CONN_MAX_PROPNAME = "connection.max";
   String SERVER_CONN_STEP_PROPNAME = "connection.step";
   String SERVER_TIMEOUT = "timeout";
   String SYSTEM_PROP_PREFIX = "siteminder.cache.";
   String AGENT_RESOURCE_CACHE_SIZE_PROPNAME = "resourceCache.size";
   String AGENT_RESOURCE_CACHE_MAX_AGE_PROPNAME = "resourceCache.maxAge";
   String AGENT_AUTHENTICATION_CACHE_SIZE_PROPNAME = "authenticationCache.size";
   String AGENT_AUTHENTICATION_CACHE_MAX_AGE_PROPNAME = "authenticationCache.maxAge";
   String AGENT_AUTHORIZATION_CACHE_SIZE_PROPNAME = "authorizationCache.size";
   String AGENT_AUTHORIZATION_CACHE_MAX_AGE_PROPNAME = "authorizationCache.maxAge";
   String AGENT_ACO_CACHE_SIZE_PROPNAME = "acoCache.size";
   String AGENT_ACO_CACHE_MAX_AGE_PROPNAME = "acoCache.maxAge";
   String GENERATE_SESSION_COOKIE_STRING_PROPERTY = "siteminder.session.generateCookieString";
   String AUTHENTICATION_INCLUDE_PASSWORD_STATUS = "siteminder.authentication.includePasswordStatus";
   String AGENT_MANAGEMENT_TIME_PERIOD = "siteminder.managementTimePeriod";
   int DEFAULT_CONNECTION_MIN = 1;
   int DEFAULT_CONNECTION_MAX = 10;
   int DEFAULT_CONNECTION_STEP = 1;
   int DEFAULT_TIMEOUT = 75;
   int DEFAULT_AGENT_MANAGEMENT_TIME_PERIOD = 30000;

   String getAddress();

   String getSecret();

   boolean isIpCheck();

   String getHostname();

   int getFipsMode();

   boolean isNonClusterFailover();

   int getClusterThreshold();

   boolean isUpdateSSOToken();

   Map<String, String> getProperties();
}
