Class ServerConfigEnvProps

  • All Implemented Interfaces:
    EventListener, IGProp<GProp<?>[]>, IPropCnr, java.lang.Cloneable
    Direct Known Subclasses:
    EditorServerConfigEnvProps

    public class ServerConfigEnvProps
    extends PropCnr
    This configuration environment defines the configuration setup for the available plug-ins. Several configuration environments may be present in a Server, e.g. "development", "test", "acceptance", "preproduction" and "production".
    • Field Detail

      • ALLOW_PARALLEL_SESSIONS

        public static final java.lang.String ALLOW_PARALLEL_SESSIONS
        Property name: Allow parallel sessions.
        See Also:
        Constant Field Values
      • MAX_CLIENTS_PER_APP_SESSION

        public static final java.lang.String MAX_CLIENTS_PER_APP_SESSION
        Property name: Max client sessions/app session.
        See Also:
        Constant Field Values
      • APP_TIMEOUT

        public static final java.lang.String APP_TIMEOUT
        Property name: App session timeout.
        See Also:
        Constant Field Values
      • CUSTOM_APP_SETTINGS

        public static final java.lang.String CUSTOM_APP_SETTINGS
        Property name: Custom app settings.
        See Also:
        Constant Field Values
      • ALLOWED_DOMAINS

        public static final java.lang.String ALLOWED_DOMAINS
        Property name: Allowed domains.
        See Also:
        Constant Field Values
      • REQUIRE_TLS

        public static final java.lang.String REQUIRE_TLS
        Property name: Require TLS.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ServerConfigEnvProps

        public ServerConfigEnvProps()
        Creates the configuration environment properties without a name. The name must be set in all cases using the setPropertyAtom call.
      • ServerConfigEnvProps

        public ServerConfigEnvProps​(Atom atom)
        Creates the configuration environment properties with an atom manager.
        Parameters:
        atom - The atom.
    • Method Detail

      • clone

        public ServerConfigEnvProps clone()
        Creates a clone out of this property. The cloning is overridden by the subclasses in order to handle cloning of its class variables appropriately.
        Overrides:
        clone in class PropCnr
        Returns:
        A cloned instance.
      • onPropInvalidateCache

        protected void onPropInvalidateCache()
        Invalidates a potential cache in this property. This method is called during a synchronized state of the property.
        Overrides:
        onPropInvalidateCache in class GProp<GProp<?>[]>
      • getDescription

        public java.lang.String getDescription()
        Gets the description of this configuration environment.
        Returns:
        The description, or null for none.
      • getPluginConfigs

        public ServerPluginConfig[] getPluginConfigs()
        Gets the server plug-in configurations in the environment, normally one per plug-in type.
        Returns:
        A cached value.
      • getServerApplicationSetup

        public IServerApplicationSetupPropCnr[] getServerApplicationSetup​(java.lang.String pluginID)
        Gets the configuration setup's for a plug-in with specified ID. Each plug-in may present several configurations, although most commonly a single one.
        Parameters:
        pluginID - The plug-in ID.
        Returns:
        The configuration setup, or null if plug-in configuration is not found. If the plug-in is found but no configurations, an empty array is returned.
      • isUserParallelSessionsAllowed

        public boolean isUserParallelSessionsAllowed()
        Gets the flag indicating if a user is allowed to start multiple parallel sessions or if just one per user and app is allowed (default true).
        Returns:
        The allow flag.
      • getMaxClientsPerAppSession

        public int getMaxClientsPerAppSession()
        Gets the maximum number of clients sessions per app session, zero = no limit.
        Returns:
        The value, default zero.
      • getAppTimeout

        public long getAppTimeout()
        Gets the timeout before an app session is disposed of when no more client sessions are present, default 1 hour.
        Returns:
        The timeout value in milliseconds.
      • getCustomAppValue

        public java.lang.String getCustomAppValue​(java.lang.String key)
        Gets a value for a key in the custom app properties.
        Parameters:
        key - The key or name of the property to retrieve.
        Returns:
        The value, or null if no value is defined for the key, or the custom map is not defined.
      • onAppSessionEndPoint

        public void onAppSessionEndPoint​(EndPointPropCnr cnr,
                                         AppSessionGyro appGyro)
        Called when a new end point property container is added for a server monitor instance. This is delegated to the plug-ins in the application's server environment in order to enable them to add information for the application session.
        Parameters:
        cnr - The container for the end point.
        appGyro - The application session gyro of the end point.
      • getAllowedDomains

        public java.lang.String getAllowedDomains()
        Gets the allowed domains that are allowed access to this environment.
        Returns:
        The domain name as e.g. "hello.example.com", or null if not associated with Let's Encrypt.
      • getAllowedDomainSet

        public java.util.Set<java.lang.String> getAllowedDomainSet()
        Gets the different domain names as String set. The domains names set includes all defined domain names that are configured for this port.
        Returns:
        A new set of domain names.
      • isTLSRequired

        public boolean isTLSRequired()
        Returns if access to this environment requires TLS.
        Returns:
        true if secured, false if HTTP is accepted.
      • isDomainAccessAllowed

        public boolean isDomainAccessAllowed​(java.lang.String domain,
                                             boolean isSecure)
        Checks if a domain is allowed access to this environment. It is assumed that the caller of this method already has checked the validity of the 'host' header with the domain name from the URL.
        Parameters:
        domain - The domain name extracted from the URL.
        isSecure - Flag for session secured.
        Returns:
        true for access allowed, false for no access.