### *** This class provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.connection

# Class Server

java.lang.Object
com.sas.services.connection.Server

All Implemented Interfaces:
  `Serializable`, `Cloneable`

Direct Known Subclasses:
  `TCPIPServer`

@SASScope("ALL") @BinaryCompatibilityOnly public abstract class Server extends Object implements Cloneable, Serializable
A base class for describing IOM servers.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `AUTH_SERVICE_HOST`
  Authenticate against the host on which the server is running.
  `static final String`
  `AUTH_SERVICE_METADATA`
  Authenticate against a SAS Metadata Server.
  `static final String`
  `AUTH_SERVICE_NONE`
  No authentication required.
  `static final String`
  `AUTH_SERVICE_PROMPT`
  Prompt for a credential that will be authenticated against the host on which the server is running.
  `static final String`
  `CLSID_ABM`
  The class Id of the SAS ABM Server (current major version).
  `static final String`
  `CLSID_ABM_1_0`
  The class ID of the SAS ABM Server (version 1.0).
  `static final String`
  `CLSID_OBJSPAWN`
  The class ID of the SAS Object Spawner (current major version).
  `static final String`
  `CLSID_OBJSPAWN_1_0`
  The class ID of the SAS Object Spawner (version 1.0).
  `static final String`
  `CLSID_OBJSPAWN_1_1`
  The class ID of the SAS Object Spawner (version 1.1).
  `static final String`
  `CLSID_POOLED_SAS`
  The class ID of the Pooled SAS toplevel class (current major version).
  `static final String`
  `CLSID_POOLED_SAS_1_0`
  The class ID of the Pooled SAS toplevel class (version 1.0).
  `static final String`
  `CLSID_SAS`
  The class ID of the SAS toplevel class (current major version).
  `static final String`
  `CLSID_SAS_1_0`
  The class ID of the SAS toplevel class (version 1.0).
  `static final String`
  `CLSID_SAS_1_1`
  The class ID of the SAS toplevel class (version 1.1).
  `static final String`
  `CLSID_SAS_1_2`
  The class ID of the SAS toplevel class (version 1.2).
  `static final String`
  `CLSID_SASGMS`
  The class ID of the SASGMS toplevel class (current major version).
  `static final String`
  `CLSID_SASGMS_1_0`
  The class ID of the SASGMS toplevel class (version 1.0).
  `static final String`
  `CLSID_SASMDX`
  The class ID of the SASMDX toplevel class (current major version).
  `static final String`
  `CLSID_SASMDX_1_0`
  The class ID of the SASMDX toplevel class (version 1.0).
  `static final String`
  `CLSID_SASMQX`
  The class ID of the SASMQX toplevel class (current major version).
  `static final String`
  `CLSID_SASMQX_1_0`
  The class ID of the SASMQX toplevel class (version 1.0).
  `static final String`
  `CLSID_SASOMI`
  The class ID of the SASOMI toplevel class (current major version).
  `static final String`
  `CLSID_SASOMI_1_0`
  The class ID of the SASOMI toplevel class (version 1.0).
  `static final String`
  `CLSID_SASOMI_1_1`
  The class ID of the SASOMI toplevel class (version 1.1).
  `static final String`
  `CLSID_SASOMI_2_0`
  The class ID of the SASOMI toplevel class (version 2.0).
  `static final String`
  `CLSID_SASSTP`
  The class ID of the SASSTP toplevel class (current major version).
  `static final String`
  `CLSID_SASSTP_1_0`
  The class ID of the SASSTP toplevel class (version 1.0).
  `static final String`
  `CLSID_SASTableServer`
  The class ID of the SAS Table Server (current major version).
  `static final String`
  `CLSID_SASTableServer_1_0`
  The class ID of the SAS Table Server (version 1.0).
  `static final String`
  `CLSID_UNDESIGNATED`
  A class ID that does not designate any class.
  `static final String`
  `OBJSPAWN_ID`
  A string used to identify the SAS Object Spawner in old metadata.
  `static final String`
  `SECURITY_PACKAGE_KERBEROS`
  Authentication using Kerberos.
  `static final String`
  `SECURITY_PACKAGE_LIST_DEFAULT`
  The default value for securityPackageList.
  `static final String`
  `SECURITY_PACKAGE_NEGOTIATE`
  Authenticate using a security package supported by both the client and server.
  `static final String`
  `SECURITY_PACKAGE_NTLM`
  Authenticate using NTLM.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Server(String classID)`
  Construct an object describing an IOM server.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `boolean`
  `equals(Object that)`
  `static Server`
  `fromURI(SASURI uri)`
  Convert a URI into a Server.
  `String`
  `getAuthService()`
  Get the authentication service to use when connecting to this server.
  `String`
  `getClassID()`
  Get the class ID.
  `String`
  `getDomain()`
  Get the authentication domain.
  `int`
  `getMaxClients()`
  Get the maximum number of clients.
  `String`
  `getNormalizedClassID()`
  Get the normalized class ID.
  `String`
  `getNormalizedSecurityPackage()`
  Get the normalized security package to use when connecting to this server.
  `String`
  `getNormalizedSecurityPackageList()`
  Get the normalized list of security packages to use when connecting to this server.
  `String`
  `getOption(String name)`
  Get the value of the named option.
  `int`
  `getReactivationLimit()`
  Get the maximum number of reactivations.
  `String`
  `getSecurityPackage()`
  Get the security package to use when connecting to this server.
  `String`
  `getSecurityPackageList()`
  Get the list of security packages to use when connecting to this server.
  `String`
  `getServerComponentURI()`
  Get the ServerComponent URI for this server.
  `int`
  `getShutdownAfterMinutes()`
  Get the number of minutes before an idle connection is destroyed.
  `String`
  `getSPN()`
  Get the service principal name to use when connecting to this server.
  `int`
  `hashCode()`
  `static String`
  `normalizeSecurityPackage(String securityPackage)`
  Normalize a security package name.
  `static String`
  `normalizeSecurityPackageList(String securityPackageList)`
  Normalize a security package list.
  `String`
  `removeOption(String name)`
  Remove a name option and its value.
  `void`
  `setAuthService(String authService)`
  Set the authentication service to use when connecting to this server.
  `void`
  `setClassID(String classID)`
  Set the class ID.
  `void`
  `setDomain(String domain)`
  Set the authentication domain.
  `void`
  `setMaxClients(int maxClients)`
  Set the maximum number of clients.
  `String`
  `setOption(String name, String value)`
  Set the value of the named option.
  `void`
  `setReactivationLimit(int reactivationLimit)`
  Set the maximum number of reactivations.
  `void`
  `setSecurityPackage(String securityPackage)`
  Set the security package to use when connecting to this server.
  `void`
  `setSecurityPackageList(String securityPackageList)`
  Set the list of security packages to use when connecting to this server.
  `void`
  `setServerComponentURI(String serverComponentURI)`
  Set the ServerComponent URI for this server.
  `void`
  `setShutdownAfterMinutes(int shutdownAfterMinutes)`
  Set the number of minutes before an idle connection is destroyed.
  `void`
  `setSPN(String spn)`
  Set the service principal name to use when connecting to this server.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### CLSID_SAS_1_0

    public static final String CLSID_SAS_1_0
    The class ID of the SAS toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SAS_1_1

    public static final String CLSID_SAS_1_1
    The class ID of the SAS toplevel class (version 1.1).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SAS_1_2

    public static final String CLSID_SAS_1_2
    The class ID of the SAS toplevel class (version 1.2).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SAS

    public static final String CLSID_SAS
    The class ID of the SAS toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_POOLED_SAS_1_0

    public static final String CLSID_POOLED_SAS_1_0
    The class ID of the Pooled SAS toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_POOLED_SAS

    public static final String CLSID_POOLED_SAS
    The class ID of the Pooled SAS toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASGMS_1_0

    public static final String CLSID_SASGMS_1_0
    The class ID of the SASGMS toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASGMS

    public static final String CLSID_SASGMS
    The class ID of the SASGMS toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASMDX_1_0

    public static final String CLSID_SASMDX_1_0
    The class ID of the SASMDX toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASMDX

    public static final String CLSID_SASMDX
    The class ID of the SASMDX toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASMQX_1_0

    public static final String CLSID_SASMQX_1_0
    The class ID of the SASMQX toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASMQX

    public static final String CLSID_SASMQX
    The class ID of the SASMQX toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASOMI_1_0

    public static final String CLSID_SASOMI_1_0
    The class ID of the SASOMI toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASOMI_1_1

    public static final String CLSID_SASOMI_1_1
    The class ID of the SASOMI toplevel class (version 1.1).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASOMI_2_0

    public static final String CLSID_SASOMI_2_0
    The class ID of the SASOMI toplevel class (version 2.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASOMI

    public static final String CLSID_SASOMI
    The class ID of the SASOMI toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASSTP_1_0

    public static final String CLSID_SASSTP_1_0
    The class ID of the SASSTP toplevel class (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASSTP

    public static final String CLSID_SASSTP
    The class ID of the SASSTP toplevel class (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_OBJSPAWN_1_0

    public static final String CLSID_OBJSPAWN_1_0
    The class ID of the SAS Object Spawner (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_OBJSPAWN_1_1

    public static final String CLSID_OBJSPAWN_1_1
    The class ID of the SAS Object Spawner (version 1.1).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_OBJSPAWN

    public static final String CLSID_OBJSPAWN
    The class ID of the SAS Object Spawner (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASTableServer_1_0

    public static final String CLSID_SASTableServer_1_0
    The class ID of the SAS Table Server (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_SASTableServer

    public static final String CLSID_SASTableServer
    The class ID of the SAS Table Server (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_ABM_1_0

    public static final String CLSID_ABM_1_0
    The class ID of the SAS ABM Server (version 1.0).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_ABM

    public static final String CLSID_ABM
    The class Id of the SAS ABM Server (current major version).
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### CLSID_UNDESIGNATED

    public static final String CLSID_UNDESIGNATED
    A class ID that does not designate any class.
    See Also:
      - `getClassID()`
      - Constant Field Values

  - ### OBJSPAWN_ID

    public static final String OBJSPAWN_ID
    A string used to identify the SAS Object Spawner in old metadata. This value cannot be used to connect an adminstrative client to the SAS Object Spawner operator port.
    See Also:
      - Constant Field Values

  - ### AUTH_SERVICE_HOST

    public static final String AUTH_SERVICE_HOST
    Authenticate against the host on which the server is running. Host authentication can include user name/password and security packages such as Kerberos and NTLM.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NTLM`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - Constant Field Values

  - ### AUTH_SERVICE_METADATA

    public static final String AUTH_SERVICE_METADATA
    Authenticate against a SAS Metadata Server. Typically a specialized connection factory will generate a credential for the connecting user and send it to the target server. The target server will, in turn, forward the generated credential to the SAS Metadata Server for authentication.
    See Also:
      - Constant Field Values

  - ### AUTH_SERVICE_PROMPT

    public static final String AUTH_SERVICE_PROMPT
    Prompt for a credential that will be authenticated against the host on which the server is running. The credential must be a user name and password. Typically, a specialized connection factory is responsible for initiating the prompt through a callback registered by the application.
    See Also:
      - Constant Field Values

  - ### AUTH_SERVICE_NONE

    public static final String AUTH_SERVICE_NONE
    No authentication required. The connection factory will not send a credential to the server for authentication.
    See Also:
      - Constant Field Values

  - ### SECURITY_PACKAGE_KERBEROS

    public static final String SECURITY_PACKAGE_KERBEROS
    Authentication using Kerberos.
    See Also:
      - `AUTH_SERVICE_HOST`
      - Constant Field Values

  - ### SECURITY_PACKAGE_NTLM

    public static final String SECURITY_PACKAGE_NTLM
    Authenticate using NTLM.
    See Also:
      - `AUTH_SERVICE_HOST`
      - Constant Field Values

  - ### SECURITY_PACKAGE_NEGOTIATE

    public static final String SECURITY_PACKAGE_NEGOTIATE
    Authenticate using a security package supported by both the client and server.
    See Also:
      - `AUTH_SERVICE_HOST`
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NTLM`
      - `SECURITY_PACKAGE_LIST_DEFAULT`
      - Constant Field Values

  - ### SECURITY_PACKAGE_LIST_DEFAULT

    public static final String SECURITY_PACKAGE_LIST_DEFAULT
    The default value for securityPackageList.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Server

    public Server(String classID)
    Construct an object describing an IOM server.
    Parameters:
      `classID` - the class ID
    See Also:
      - `setClassID(java.lang.String)`

- ## Method Details

  - ### setClassID

    public void setClassID(String classID)
    Set the class ID. The class ID identifies the type of IOM object that the server is configured to instantiate. The fields of this class named `CLSID_*` provide several possible values for this attribute, but there may be other valid values in newer server versions. If the server is not configured to instantiate IOM objects of this type, then connections attempts to the server will fail.
    Parameters:
      `classID` - the class ID
    Throws:
      `IllegalArgumentException` - if this attribute is set to `null`
    See Also:
      - `CLSID_SAS`
      - `CLSID_SAS_1_1`
      - `CLSID_SASMDX`
      - `CLSID_SASGMS`
      - `CLSID_SASMQX`
      - `CLSID_SASOMI`
      - `CLSID_SASSTP`
      - `CLSID_OBJSPAWN`
      - `CLSID_OBJSPAWN_1_1`

  - ### getClassID

    public String getClassID()
    Get the class ID.
    Returns:
      the class ID
    See Also:
      - `setClassID(java.lang.String)`

  - ### getNormalizedClassID

    public String getNormalizedClassID()
    Get the normalized class ID. A normalized class ID is all lowercase.
    Returns:
      the normalized class ID
    See Also:
      - `setClassID(java.lang.String)`

  - ### setMaxClients

    public void setMaxClients(int maxClients)
    Set the maximum number of clients. This attribute is ignored by the connection factory unless the server is participating in a connection pool. For connection pools, this attribute determines the maximum number of connections a factory may have to the server at any given time. The default value is 10.
    Parameters:
      `maxClients` - the maximum number of clients
    Throws:
      `IllegalArgumentException` - if this attribute is set to a value less than `1`

  - ### getMaxClients

    public int getMaxClients()
    Get the maximum number of clients.
    Returns:
      the maximum number of clients
    See Also:
      - `setMaxClients(int)`

  - ### setReactivationLimit

    public void setReactivationLimit(int reactivationLimit)
    Set the maximum number of reactivations. This attribute is ignored by the connection factory unless the server is participating in a connection pool. For connection pools, this attribute determines the number of times a connection to this server will be refreshed and reused by the factory to satisfy connection requests. Once the limit is reached, the factory will destroy the connection and reconnect if necessary.

    In theory, refreshing a connection should cause the server to release all resources associated with the connection and return to its initial state. However, if there are bugs in the server that allow resource use to accumulate over several connection reuses, then the server may eventually run out of that resource. This attribute allows the factory to periodically restart servers and force all resources to be released.

    If the value is `0`, then connections will be refreshed and reused indefinitely (subject to limitations set by other attributes). The default value is `0`.

    Parameters:
      `reactivationLimit` - the maximum number of reactivations
    Throws:
      `IllegalArgumentException` - if this attribute is set to a value less than `0`

  - ### getReactivationLimit

    public int getReactivationLimit()
    Get the maximum number of reactivations.
    Returns:
      the maximum number of reactivations
    See Also:
      - `setReactivationLimit(int)`

  - ### setShutdownAfterMinutes

    public void setShutdownAfterMinutes(int shutdownAfterMinutes)
    Set the number of minutes before an idle connection is destroyed. This attribute is ignored by the connection factory unless the server is participating in a connection pool. For connection pools, this attribute determines how long an unallocated connection will be kept alive by the factory. This attribute takes precedence over the `minSize` and `minAvail` attributes in that a puddle with a non-negative value for this attribute is allowed to shutdown all connections after the required period of idleness even if it also has strictly positive values for minSize or minAvail.

    `-1` means idle connections will be kept alive until connection factory shutdown. `0` means a connection returned to the factory will be destroyed immediately unless another user is waiting for it. The default value is `-1`.

    Parameters:
      `shutdownAfterMinutes` - the number of minute before an idle connection is destroyed
    Throws:
      `IllegalArgumentException` - if this attribute is set to a value less than `-1`

  - ### getShutdownAfterMinutes

    public int getShutdownAfterMinutes()
    Get the number of minutes before an idle connection is destroyed.
    Returns:
      the number of minute before an idle connection is destroyed
    See Also:
      - `setShutdownAfterMinutes(int)`

  - ### setDomain

    public void setDomain(String domain)
    Set the authentication domain. The domain is a label that the factory uses to group servers and credentials. When connecting through a factory, the factory user must present a credential object with a domain that matches the domain of at least one server managed by the factory.

    Empty string and `null` are considered to be equivalent domains. The default value is empty string.

    Parameters:
      `domain` - the authentication domain

  - ### getDomain

    public String getDomain()
    Get the authentication domain.
    Returns:
      the authentication domain
    See Also:
      - `setDomain(java.lang.String)`

  - ### setServerComponentURI

    public void setServerComponentURI(String serverComponentURI)
    Set the ServerComponent URI for this server. This value will be non-null only if the configuration for this server was loaded from a SAS Metadata Server.
    Parameters:
      `serverComponentURI` - the ServerComponent URI for this server.

  - ### getServerComponentURI

    public String getServerComponentURI()
    Get the ServerComponent URI for this server. This value will be non-null only if the configuration for this server was loaded from a SAS Metadata Server.
    Returns:
      the ServerComponent URI for this server.

  - ### getAuthService

    public String getAuthService()
    Get the authentication service to use when connecting to this server. The default value is `AUTH_SERVICE_NONE` unless a subclass provides a different default.
    Returns:
      the authentication service to use when connecting to this server
    See Also:
      - `AUTH_SERVICE_HOST`
      - `AUTH_SERVICE_METADATA`
      - `AUTH_SERVICE_PROMPT`
      - `AUTH_SERVICE_NONE`

  - ### setAuthService

    public void setAuthService(String authService)
    Set the authentication service to use when connecting to this server. The default value is `AUTH_SERVICE_NONE` unless a subclass provides a different default.
    Parameters:
      `authService` - the authentication service to use when connecting to this server.
    See Also:
      - `AUTH_SERVICE_HOST`
      - `AUTH_SERVICE_METADATA`
      - `AUTH_SERVICE_PROMPT`
      - `AUTH_SERVICE_NONE`

  - ### getSecurityPackage

    public String getSecurityPackage()
    Get the security package to use when connecting to this server. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST`. The default value is `null` which indicates that user name/password authentication will be used.
    Returns:
      the security package to use when connecting to this server.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - `SECURITY_PACKAGE_NTLM`

  - ### getNormalizedSecurityPackage

    public String getNormalizedSecurityPackage()
    Get the normalized security package to use when connecting to this server. The normalized value is the result of calling `normalizeSecurityPackage()` with the original value. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST`. The default value is `null` which indicates that user name/password authentication will be used.
    Returns:
      the security package to use when connecting to this server.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - `SECURITY_PACKAGE_NTLM`

  - ### setSecurityPackage

    public void setSecurityPackage(String securityPackage)
    Set the security package to use when connecting to this server. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST`. The default value is `null` which indicates that user name/password authentication will be used.
    Parameters:
      `securityPackage` - the security package to use when connecting to this server.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - `SECURITY_PACKAGE_NTLM`

  - ### getSecurityPackageList

    public String getSecurityPackageList()
    Get the list of security packages to use when connecting to this server. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST` and the value for `securityPackage` is `SECURITY_PACKAGE_NEGOTIATE`. The default value is `Kerberos,NTLM`.
    Returns:
      the list of security packages to use when connecting to this server.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - `SECURITY_PACKAGE_NTLM`

  - ### getNormalizedSecurityPackageList

    public String getNormalizedSecurityPackageList()
    Get the normalized list of security packages to use when connecting to this server. The normalized value is the result of calling `normalizeSecurityPackageList()` with the original value. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST` and the value for `securityPackage` is `SECURITY_PACKAGE_NEGOTIATE`. The default value is `Kerberos,NTLM`.
    Returns:
      the list of security packages to use when connecting to this server.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - `SECURITY_PACKAGE_NTLM`

  - ### setSecurityPackageList

    public void setSecurityPackageList(String securityPackageList)
    Set the list of security packages to use when connecting to this server. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST` and the value for `securityPackage` is `SECURITY_PACKAGE_NEGOTIATE`. The default value is `Kerberos,NTLM`.
    Parameters:
      `securityPackageList` - the list of security packages to use when connecting to this server.
    See Also:
      - `SECURITY_PACKAGE_KERBEROS`
      - `SECURITY_PACKAGE_NEGOTIATE`
      - `SECURITY_PACKAGE_NTLM`

  - ### getSPN

    public String getSPN()
    Get the service principal name to use when connecting to this server. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST` and the value for `securityPackage` is set to `SECURITY_PACKAGE_NEGOTIATE` or `SECURITY_PACKAGE_KERBEROS`
    Returns:
      the service principal name to use when connecting to this server.

  - ### setSPN

    public void setSPN(String spn)
    Set the service principal name to use when connecting to this server. The value for this attribute is significant only if the value for `authService` is set to `AUTH_SERVICE_HOST` and the value for `securityPackage` is set to `SECURITY_PACKAGE_NEGOTIATE` or `SECURITY_PACKAGE_KERBEROS`
    Parameters:
      `spn` - the service principal name to use when connecting to this server.

  - ### getOption

    public String getOption(String name)
    Get the value of the named option.
    Parameters:
      `name` - the option name
    Returns:
      the value of the named option

  - ### setOption

    public String setOption(String name, String value)
    Set the value of the named option.
    Parameters:
      `name` - the option name
      `value` - the option value
    Returns:
      the previous option value

  - ### removeOption

    public String removeOption(String name)
    Remove a name option and its value.
    Parameters:
      `name` - the option name
    Returns:
      the previous value

  - ### fromURI

    public static Server fromURI(SASURI uri)
    Convert a URI into a Server.
    Parameters:
      `uri` - the URI to convert

  - ### equals

    public boolean equals(Object that)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### clone

    public Object clone()
    Overrides:
      `clone` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### normalizeSecurityPackage

    public static String normalizeSecurityPackage(String securityPackage)
    Normalize a security package name. Specifically, if the specified name is equal to a known security pacakge name in a case-insensitive comparison, then the known security package is returned. Otherwise, the specified name is returned unchanged.
    Parameters:
      `securityPackage` - the security package name to normalize
    Returns:
      the normalized security package name

  - ### normalizeSecurityPackageList

    public static String normalizeSecurityPackageList(String securityPackageList)
    Normalize a security package list. Specifically, whitespace around commas is removed, and each security package name in the list is normalized separately using `normalizeSecurityPackage()`.
    Parameters:
      `securityPackageList` - the security package list to normalized
    Returns:
      the normalized security package list