[[configuration]]
Client configuration
--------------------

The client uses the configuration file to get information about:

 - UVOS server address,
 - clients identity which is used to authenticate the client to the UVOS server, 
 - trusted certificates for TLS connection.
 
The file location can be chosen via '-c file' argument or by setting the UVOSCLC_CONFIG shell
variable. The Java Properties format is used. See:
 
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#load(java.io.InputStream)

for a formal discussion, however it is enough to know that:

 - comments are started with '#'
 - on each line (non empty and not commented out) there is one property and its value defined...
 - ... with the syntax: propertyName=property value

UVOS can be contacted using insecure HTTP or secure HTTPS. Except closed test environments 
it is always strongly suggested to use secure HTTPS.

Clients can authenticate to the UVOS using two mechanisms:

 - using X.509 certificate - it is taken from SSL session so to use this authentication
 you must use 'https' protocol.
 - using email and password - then any protocol can be used. 

Below the valid properties are presented along with descriptions.

include::uvosclc-ref.txt[]

:leveloffset: 1

[[authtrust]]
include::sec-authtrustcfg.txt[]


:leveloffset: 0

Example configuration file
^^^^^^^^^^^^^^^^^^^^^^^^^^

----------------
#######################################
# Client general settings
#######################################
uvos.port=51774
uvos.host=localhost

#######################################
# SSL settings (for https only)
#######################################
# do we authenticate ourself to the server?
client.sslAuthnEnabled=false

credential.format=jks
credential.path=/opt/keystore.jks
credential.keyAlias=mykey
credential.password=the!client

truststore.type=keystore
truststore.keystorePath=/opt/truststore.jks
truststore.keystorePassword=the!client
truststore.keystoreFormat=JKS

#######################################
# AUTHN settings (for https only)
#######################################
# do we authenticate with HTTP Basic authN (i.e. username & passwd)?
client.httpAuthnEnabled=true
client.httpUser=voadmin@localhost
client.httpPassword=
----------------