org.globus.common
Class CoGProperties

java.lang.Object
  extended by java.util.Dictionary<K,V>
      extended by java.util.Hashtable<java.lang.Object,java.lang.Object>
          extended by java.util.Properties
              extended by org.globus.common.CoGProperties
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.Object,java.lang.Object>

public class CoGProperties
extends java.util.Properties

Responsible for managing the properties file "~/.globus/cog.properties", which holds information about various properties needed by the security classes. These properties include:

See Also:
Serialized Form

Field Summary
static java.lang.String BASEDN
           
static java.lang.String CONFIG_FILE
          the configuration file properties are read from -- located in ~/.globus"
static java.lang.String configFile
          the config file location
static java.lang.String CRL_CACHE_LIFETIME
           
static java.lang.String DELEGATION_KEY_CACHE_LIFETIME
           
static java.lang.String ENFORCE_SIGNING_POLICY
           
static java.lang.String MDSHOST
           
static java.lang.String MDSPORT
           
 
Fields inherited from class java.util.Properties
defaults
 
Constructor Summary
CoGProperties()
           
CoGProperties(java.lang.String file)
           
 
Method Summary
 boolean enforceSigningPolicy()
           
static void fixSpace(java.util.Properties p)
           
protected  boolean getAsBoolean(java.lang.String key, boolean defaultValue)
           
protected  int getAsInt(java.lang.String label, int defValue)
           
 java.lang.String getCaCertLocations()
          Retrieves the location of the CA certificate files.
 long getCRLCacheLifetime()
          Returns the CRL cache lifetime.
static CoGProperties getDefault()
           
 java.lang.String getDefaultPKCS11Handle()
           
 int getDelegationKeyCacheLifetime()
          Returns the delegation key cache lifetime for all delegations from this JVM.
 java.lang.String getHostName()
          Returns the user specified hostname.
 java.lang.String getIPAddress()
          Returns the user specified ip address.
 java.lang.String getPKCS11LibraryName()
           
 java.lang.String getProxyFile()
          Retrieves the location of the proxy file.
 int getProxyLifeTime()
           
 int getProxyStrength()
           
 java.lang.String getSecureRandomAlgorithm()
           
 java.lang.String getSecureRandomProvider()
           
 int getSocketTimeout()
          Returns the timeout (in seconds) for creating a new socket connection to a MyProxy host.
 java.lang.String getTcpPortRange()
          Returns the tcp port range.
 java.lang.String getTcpSourcePortRange()
          Returns the tcp source port range.
 java.lang.String getUdpSourcePortRange()
          Returns the udp source port range.
 java.lang.String getUserCertFile()
          Retrieves the location of the user cert file.
 java.lang.String getUserKeyFile()
          Retrieves the location of the user key file.
protected static boolean isNullOrEmpty(java.lang.String tmp)
           
 void load(java.io.InputStream in)
           
 void load(java.lang.String file)
           
 void save()
           
 void save(java.lang.String file)
           
 void setCaCertLocations(java.lang.String list)
           
static void setDefault(CoGProperties properties)
          Sets default configuration.
 void setHostName(java.lang.String host)
          Sets hostname
 void setIPAddress(java.lang.String ipAddress)
          Sets ip address
 void setProxyFile(java.lang.String proxyFile)
           
 void setProxyLifeTime(int lifeTimeInHours)
           
 void setProxyStrength(int strength)
           
 void setSocketTimeout(int socketTimeout)
           
 void setUserCertFile(java.lang.String userCertFile)
           
 void setUserKeyFile(java.lang.String userKeyFile)
          Sets user key file location
 boolean useDevRandom()
          Returns whether to use the /dev/urandom device for seed generation.
 
Methods inherited from class java.util.Properties
getProperty, getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames
 
Methods inherited from class java.util.Hashtable
clear, clone, contains, containsKey, containsValue, elements, entrySet, equals, get, hashCode, isEmpty, keys, keySet, put, putAll, rehash, remove, size, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

ENFORCE_SIGNING_POLICY

public static final java.lang.String ENFORCE_SIGNING_POLICY
See Also:
Constant Field Values

DELEGATION_KEY_CACHE_LIFETIME

public static final java.lang.String DELEGATION_KEY_CACHE_LIFETIME
See Also:
Constant Field Values

CRL_CACHE_LIFETIME

public static final java.lang.String CRL_CACHE_LIFETIME
See Also:
Constant Field Values

MDSHOST

public static final java.lang.String MDSHOST
See Also:
Constant Field Values

MDSPORT

public static final java.lang.String MDSPORT
See Also:
Constant Field Values

BASEDN

public static final java.lang.String BASEDN
See Also:
Constant Field Values

CONFIG_FILE

public static final java.lang.String CONFIG_FILE
the configuration file properties are read from -- located in ~/.globus"

See Also:
Constant Field Values

configFile

public static java.lang.String configFile
the config file location

Constructor Detail

CoGProperties

public CoGProperties()

CoGProperties

public CoGProperties(java.lang.String file)
              throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getDefault

public static CoGProperties getDefault()

setDefault

public static void setDefault(CoGProperties properties)
Sets default configuration. It can be used to set a different configuration dynamically.


save

public void save()
          throws java.io.IOException
Throws:
java.io.IOException

save

public void save(java.lang.String file)
          throws java.io.IOException
Throws:
java.io.IOException

load

public void load(java.lang.String file)
          throws java.io.IOException
Throws:
java.io.IOException

load

public void load(java.io.InputStream in)
          throws java.io.IOException
Overrides:
load in class java.util.Properties
Throws:
java.io.IOException

fixSpace

public static void fixSpace(java.util.Properties p)

getUserCertFile

public java.lang.String getUserCertFile()
Retrieves the location of the user cert file. It first checks the X509_USER_CERT system property. If the property is not set, it checks next the 'usercert' property in the current configuration. If that property is not set, it returns a default location of the user cert file. The default value is the 'usercert.pem' file in the user's globus directory. For example: ${user.home}/.globus/usercert.pem.

Returns:
String the location of the user cert file

setUserCertFile

public void setUserCertFile(java.lang.String userCertFile)

getPKCS11LibraryName

public java.lang.String getPKCS11LibraryName()

getDefaultPKCS11Handle

public java.lang.String getDefaultPKCS11Handle()

getUserKeyFile

public java.lang.String getUserKeyFile()
Retrieves the location of the user key file. It first checks the X509_USER_KEY system property. If the property is not set, it checks next the 'userkey' property in the current configuration. If that property is not set, it returns a default location of the user key file. The default value is the 'userkey.pem' file in the user's globus directory. For example: ${user.home}/.globus/userkey.pem.

Returns:
String the location of the user key file

setUserKeyFile

public void setUserKeyFile(java.lang.String userKeyFile)
Sets user key file location

Parameters:
userKeyFile - user key file location

getHostName

public java.lang.String getHostName()
Returns the user specified hostname. This is used for DHCP machines where java is unable to determine the right hostname/IP address. It first checks the 'GLOBUS_HOSTNAME' system property. If the property is not set, it checks the 'host' system property next. If the 'host' property is not set in the current configuration, null is returned (and default 'localhost' hostname will be used)

Returns:
String the hostname of the machine.

setHostName

public void setHostName(java.lang.String host)
Sets hostname

Parameters:
host - hostname

getIPAddress

public java.lang.String getIPAddress()
Returns the user specified ip address. This is used for DHCP machines where java is unable to determine the right IP address. It first checks the 'org.globus.ip' system property. If that property is not set, it checks next the 'ip' property in the current configuration. If the 'ip' property is not set in the current configuration, the hostname of the machine is looked up using the getHostName() function. If getHostName() returns a hostname that hostname is converted into an IP address and it is returned. Otherwise, null is returned (and default ip address will be used)

Returns:
String the ip address of the machine.

setIPAddress

public void setIPAddress(java.lang.String ipAddress)
Sets ip address

Parameters:
ipAddress - ip address

getCaCertLocations

public java.lang.String getCaCertLocations()
Retrieves the location of the CA certificate files. It first checks the X509_CERT_DIR system property. If the property is not set, it checks next the 'cacert' property in the current configuration. If that property is not set, it tries to find the certificates using the following rules:
First the ${user.home}/.globus/certificates directory is checked. If the directory does not exist, and on a Unix machine, the /etc/grid-security/certificates directory is checked next. If that directory does not exist and GLOBUS_LOCATION system property is set then the ${GLOBUS_LOCATION}/share/certificates directory is checked. Otherwise, null is returned. This indicates that the certificates directory could not be found.
Moreover, this function can return multiple file and directory locations. The locations must be comma separated.

Returns:
String the locations of the CA certificates

setCaCertLocations

public void setCaCertLocations(java.lang.String list)

getProxyFile

public java.lang.String getProxyFile()
Retrieves the location of the proxy file. It first checks the X509_USER_PROXY system property. If the property is not set, it checks next the 'proxy' property in the current configuration. If that property is not set, then it defaults to a value based on the following rules:
If a UID system property is set, and running on a Unix machine it returns /tmp/x509up_u${UID}. If any other machine then Unix, it returns ${tempdir}/x509up_u${UID}, where tempdir is a platform-specific temporary directory as indicated by the java.io.tmpdir system property. If a UID system property is not set, the username will be used instead of the UID. That is, it returns ${tempdir}/x509up_u_${username}
This is done this way because Java is not able to obtain the current uid.

Returns:
String the location of the proxy file

setProxyFile

public void setProxyFile(java.lang.String proxyFile)

getTcpPortRange

public java.lang.String getTcpPortRange()
Returns the tcp port range. It first checks the 'GLOBUS_TCP_PORT_RANGE' system property. If that system property is not set then 'org.globus.tcp.port.range' system property is checked. If that system property is not set then it returns the value specified in the configuration file. Returns null if the port range is not defined.
The port range is in the following form: ,

Returns:
String the port range.

getTcpSourcePortRange

public java.lang.String getTcpSourcePortRange()
Returns the tcp source port range. It first checks the 'GLOBUS_TCP_SOURCE_PORT_RANGE' system property. If that system property is not set then 'org.globus.source.tcp.port.range' system property is checked. If that system property is not set then it returns the value specified in the configuration file. Returns null if the port range is not defined.
The port range is in the following form: ,

Returns:
String the port range.

getUdpSourcePortRange

public java.lang.String getUdpSourcePortRange()
Returns the udp source port range. It first checks the 'GLOBUS_UDP_SOURCE_PORT_RANGE' system property. If that system property is not set then 'org.globus.source.udp.port.range' system property is checked. If that system property is not set then it returns the value specified in the configuration file. Returns null if the port range is not defined.
The port range is in the following form: ,

Returns:
String the port range.

useDevRandom

public boolean useDevRandom()
Returns whether to use the /dev/urandom device for seed generation.

Returns:
true if the device should be used (if available of course) Returns true by default unless specified otherwise by the user.

enforceSigningPolicy

public boolean enforceSigningPolicy()

getDelegationKeyCacheLifetime

public int getDelegationKeyCacheLifetime()
Returns the delegation key cache lifetime for all delegations from this JVM. If this property is not set or set to zero or less, no caching is done. The value is the number of milliseconds the key/pair is cached.

Returns:

getCRLCacheLifetime

public long getCRLCacheLifetime()
                         throws java.lang.NumberFormatException
Returns the CRL cache lifetime. If this property is set to zero or less, no caching is done. The value is the number of milliseconds the CRLs are cached without checking for modifications on disk. Defaults to 60s.

Returns:
the CRL cache lifetime in milliseconds
Throws:
java.lang.NumberFormatException - if the cache lifetime property could not be parsed

getSecureRandomProvider

public java.lang.String getSecureRandomProvider()

getSecureRandomAlgorithm

public java.lang.String getSecureRandomAlgorithm()

getSocketTimeout

public int getSocketTimeout()
Returns the timeout (in seconds) for creating a new socket connection to a MyProxy host. The socket timeout property can be set either as the Java system property "MYPROXY_SOCKET_TIMEOUT" (i.e. via the '-D' command line option or environment variable) or via the "sockettimeout" property in the cog.properties file. If no such property is found, the default timeout of 10 seconds is returned.

Returns:
The timeout for creating a socket connectino to a MyProxy host. Defaults to 10 seconds.

setSocketTimeout

public void setSocketTimeout(int socketTimeout)

getProxyStrength

public int getProxyStrength()

setProxyStrength

public void setProxyStrength(int strength)

getProxyLifeTime

public int getProxyLifeTime()

setProxyLifeTime

public void setProxyLifeTime(int lifeTimeInHours)

getAsBoolean

protected boolean getAsBoolean(java.lang.String key,
                               boolean defaultValue)

getAsInt

protected int getAsInt(java.lang.String label,
                       int defValue)

isNullOrEmpty

protected static final boolean isNullOrEmpty(java.lang.String tmp)