Installation Guide (en)

Skip to end of metadata
Go to start of metadata

Prerequisites

Some tools and softwares are required in order to install ESCO­Grouper properly :

  • Maven 2.2.1
  • Apache ant 1.8.0
  • Tomcat 5.5.27
  • A text editor (ex : Notepad)

Maven, Tomcat and the project must be installed in a directory without blank caracter. By exemple :

CHEMIN CORRECT OU INCORRECT
C:/Program Files/Tomcat Incorrect
C:/Tomcat Correct

Grouper 1.6.2/1.6.3 database must be accessible for the API to work.

Restriction

ESCOGrouper portlet is only compatible with uPortal 2.6 and https, and you can't use 2 ESCO­Grouper portlets on the same portal because of session's problems.

Installation

Obtain the sources

To obtain the sources of the application go on : https://sourcesup.cru.fr/frs/?group_id=824

The package ESCO-DynamicGroups must be compilated at the same level place of grouper-ws to deploy a grouper hooks for dynamic groups and the esco-subject-extension-1.2.jar must be deployed in the grouper-ws lib directory.

Setting and configuration

There is no setting or configuration modification with the DERBY database between v2.5.00, v2.6.00 and v2.6.07of the application.

Basic Installation

Prerequisites : _the Tomcat server which will host the application have to be started when the Ant tasks are run.

  • Step 1 : Get ESCO­Grouper sources
  • Step 2 : Set up Tomcat run arguments.

NB : the run arguments related to language, encoding, and config directory are no more required since v.2.4.00.

  • Step 3 : If you want to install ESCO­Grouper in Portlet mode (uPortal 2.6 + https), edit Tomcat “server.xml” file and add “emptySessionPath=true” for all the <connector> tags :
  • Step 4 : Start Tomcat
  • Step 6 : Build the project (Maven build) with the Ant script :
    • Initialization and compilation : Enter ESCO-Grouper directory and run :

Warning : if BUILD SUCCESSFUL shows up at the end of Ant script, it doesn't necessarily mean that the build is successfully completed. To be sure that all was fine, you must check that no “BUILD FAILED” appears in the Maven tasks.

    • deployment : Enter ESCO-Grouper directory and run :
  • Step 8 : For the portlet mode, it's mandatory to copy the css file in the portal themes. The file is located in ESCOGrouper/properties/css directory.

1st installation

If the application has never been installed and the memory database doesn't exist.

Enter ESCO­Grouper directory and run :

When Tomcat deploys your war file, the memory database is created with all the settings configured at step 5.

Tomcat reacts in two different ways (in local or remote mode) with a war file :

  • In remote mode, it's automatic
  • In local mode, a Tomcat restart is necessary

Deployment after properties' modification (other than DERBY ones)

If the application is already installed, the derby database already exists, and you just want to modify some files in the “properties” directory which are not derby ones (strategies for example), you must do the following :

Enter ESCO­Grouper directory and run :

When Tomcat deploys your war file, the memory database of your previous installation isn't modified.

Deployment after DERBY properties' modification

If the application is already installed, the derby database already exists, and you just want to modify derby properties, you must do the following.

Enter ESCO­Grouper directory and run :

The second task copies the generated files (sql + label), removes the derby database and create a new one with your new properties.

This applies for a deployment in local mode. In remote mode, you must refer to the next section.

For the i18n files to be loaded properly, you must restart Tomcat.

Deployment after properties' modification (DERBY and not DERBY properties)

If the application is already installed, the derby database already exists, and you want to modify all types of properties, you must do the following.

Enter ESCO­Grouper directory and run :

The second task copies the generated files (sql + label), removes the derby database and create a new one with your new properties.

For the i18n files to be loaded properly, you must restart Tomcat.

Ant tasks

ant clean

This task can start cleaning projects in order to return to a pristine state before any new compilation.

ant init

This task runs a “dbinit”, copies the generated files in the project, and build the project.

ant dbinit

This task generates the SQL file (from the properties files and the i18n files) which will be used to fill the DERBY database.

Some warnings concerning “duplicate keys” could show up. Often, this is normal because some keys are used for the same attribute on different pages.
For example, the “extension” attribute is used in the group property page and in the folder property page. The same label (extension.label) is used.

Cette tâche permet de générer le fichier sql permettant d’alimenter la base de données mémoire à partir des fichiers de paramétrage ainsi que les fichiers d’internationalisation.

ant deploy

This task deploys the war created on your Tomcat.

  • In remote mode, the existing application is undeployed (if it has the same name) and the new war is deployed. Tomcat will automatically load your war file.
  • In local mode, the war is copied in the configured directory. You must restart Tomcat for the changed to take effect.

ant dbdeploy

This task copies the generated files, remove the database, and creates a new one from the newly generated files. Tomcat must be started when running this task.

ant undeploy

This task removes the war file and the deployment directory (in local and remote modes).

ESCO-Grouper Configuration

All the config files are located in the “ ESCO­Grouper/properties” directory.

build.properties

This is the environment's file, used by the Ant task.

Key Description Example
escogrouper.property.file File to use for the build, located in the “ESCO­ Grouper/properties” directory ESCOGrouper.properties
javascript.compression Enable or disable the compression for Javascript files. true
MAVEN    
maven.home Maven's directory /opt/apache-maven-2.2.0
maven.offline Enable or disable Maven's Offline mode compilation. false
maven.quiet Enable or disable verbose build. “false” will display the errors. false
TOMCAT    
tomcat.deploy.mode Configure the deployment mode : “local” or “remote”.
Remote : use Tomcat Manager to deploy.
Local : simply copy the files to deploy.
local
tomcat.webapps.directory Deployment directory (in local deployment mode) /opt/tomcat/webapps
tomcat.host Tomcat Manager's url. (required in remote deployment mode) http://escogrouper:8090/manager
tomcat.user Login used to connect to the Manager (in remote mode) manager
tomcat.password Password used to connect to the Manager (in remote mode) manager

ESCOGrouper.properties

It's ESCO­Grouper properties' file.

Key Description Example
APPLICATION    
application.version Application's version number (just an information) 2.6.0
application.versionMajorNumber Major version number. (used by “application.xml” to show the version number on the footer) 2
application.versionMinorNumber Minor version number. (used by “application.xml” to show the version number on the footer). 6
application.versionUpdate Application's update version. (used by “application.xml” to show the version number on the footer). 0
application.env Environment's name. (test, production, development), … test
application.type Compilation type. (“servlet” or “portlet”) servlet
application.portlet.name portlet's name (ignored in servlet mode) ESCOGrouperPortlet
application.host Hostname of the server hosting the application. (IP address or hostname) escogrouper.esco-portail.org
application.context Application's context name. ESCOGrouper
application.port Port to access the application. 443
CAS    
cas.mode Protocol used with CAS (http, https) https
cas.host Cas hostname auth.esco-portail.org
cas.port CAS port 443
cas.uri Cas URI. (don't forget the leading slash “/”) /
cas.uri.login Login URI. (don't forget the leading slash “/”). /login
cas.uri.logout Logout URI. (don't forget the leading slash “/”). /logout
cas.uri.validate Cas validator URI. (don't forget the leading slash “/”). /proxyValidate
cas.uri.proxyCallback Cas callback URI.(don't forget the leading slash “/”). /casProxyCallback
LDAP    
ldap.host LDAP Hostname 172.31.142.71
ldap.port LDAP port 389
ldap.login LDAP Login
Used in file “grouper.client.properties”. This login is only used for Kerberos Authentication.
admin
ldap.password LDAP Password.
Used in file “grouper.client.properties”.This login is only used for Kerberos Authentication.
passwd
ldap.dn LDAP bind dn. cn=grouper,dc=esco-portail,dc=org
ldap.dn.password LDAP password. passwd
ldap.basedc LDAP Base “Dn”. dc=esco-portail,dc=org
ldap.baseuid LDAP search branch. (branch containing ldap users = people branch). ou=people,dc=esco-portail,dc=org
GROUPER DATABASE    
database.driver Grouper database driver com.mysql.jdbc.Driver
database.username Grouper database username esco
database.password Grouper database password passwd
database.url Grouper database JDBC url jdbc:mysql://172.31.142.71:3306/grouper?characterEncoding=UTF-8
DERBY DATABASE (MEMORY DATABASE)    
derby.driver Derby database driver org.apache.derby.jdbc.ClientDriver
derby.port Derby database port 1527
derby.url Derby database jdbc url jdbc:derby://localhost:1527//opt/conf.dir/data/ESCODB;create=true;
derby.username Derby database username sa
derby.password Derby database password passwd
derby.requireAuthentication Tells whether an authentication true is required to connect to the Derby database. (“true” or “false”) true
GROUPER WS    
grouperClient.webService.url Not used at present  
grouperClient.webService.login Not used at present  
grouperClient.webService.password Not used at present  
GROUPER API service    
grouper.service Service used for Grouper API calls. 2 values possible :
  • grouperApiImplRecia : has been optimized for the calculation of duties on a large number of groups (from the version 2.6.08)
  • grouperApiImpl : for sites for which the grouperApiImplRecia service seems less efficient (same behavior as in version 2.6.07 and earlier)
grouperApiImplRecia
grouper.helper.timeToIdle duration of inactivity from the cache before its regeneration (seconds) if the grouperApiImplRecia service is used 60
grouper.helper.timeToLive maximum lifetime of the cache before its regeneration (seconds) if the grouperApiImplRecia service is used 600
LOG4J    
log4j.level Log level for the whole application. (“DEBUG”, “INFO”, “WARN”, “ERROR”, “FATAL”) DEBUG
log4j.appender.grouper_event.File Obsolete. Grouper events log file. To be used it is necessary to modify log4j file (ant/filters/log4j.filter.xml)  
log4j.appender.grouper_error.File Obsolete. Grouper errors log file. To be used it is necessary to modify log4j file (ant/filters/log4j.filter.xml) /home/grouper/logs/ESCOGrouper/grouper_error.log
log4j.appender.grouper_debug.File Grouper debug log file  
log4j.appender.grouper_gb.File Obsolete. Grouper benchs log file. To be used it is necessary to modify log4j file (ant/filters/log4j.filter.xml)  
log4j.appender.escogrouper.File Specific ESCO-Grouper log file
/home/grouper/logs/ESCOGrouper/escogrouper.log
SMTP    
smtp.host SMTP hostname localhost
smtp.port SMTP port 25
smtp.username SMTP login  
smtp.password SMTP password  
smtp.adress Recipient's address ent@esco-portail.org
smtp.name Recipient's name Administrator
smtp.adressFrom Sender's address devel@esco-portail.org
smtp.nameFrom Sender's name ESCO-Portail
smtp.copyAdress Cc address (copy) julien.gribonvald@recia.fr
error.level Error level to send mails ERROR
DYNAMIC GROUPS    
dynamic.group Include the dynamic groups plugin to the project (“true” or “false”) true
dynamic.database.attribute.field.ldaprequest Name of the grouper's attribute used to store the LDAP request defining the dynamic group. (name of the attribute in grouper_field table) rule
dynamic.group.type Name of the custom grouper group type associated to dynamic groups. (name of the group type defined in “grouper_types” table). dynamic

Application's settings (Derby database)

Application's settings are used in all pages of ESCO­Grouper, to decide whether the elements must be showed.
This technical part have to be the most open and the easiest possible. For those reasons, using a memory database is recommended in those cases, because :

  • It's Flexible, because it allows a remote access ;
  • It's Accessible from as many modules as you want ;
  • It allows settings' hot modifying (without restarting Tomcat).

Some configuration files allow to easily fill the database and to create the corresponding internationalization files.
Each file contains properties defining the way to setup the different pages (see the files provided with the sources).

The files are referenced in the “build.xml” file.
You can edit that file, and change the properties' file names or even add some others files.

MyParameters.properties

This file allows to configure 2 types of parameters

  • Parameters required by the database generation step.
  • Parameters required by the whole application.

global.lang” allows to define the application's languages. It can be used to check, during the internationalization files generation step, that all labels are filled in each language.

default.rule.regexp.*” defines the regular expression used if no expression is defined for fields validation.

MySearch.properties

This file allows to configure the search pages

  • Subjects search :
    • Persons
    • Persons in a group
    • Groups

*Folders search

MyStem.properties

This file allows to configure folders relative pages :

  • Folder properties
    • Attributes
  • Folder's creation, Folder's update
    • Attributes
    • Extension's update
    • Privileges

MyGroup.properties

This file allows to configure groups relative pages :
*Group properties

    • Members
    • Attributes
    • Privileges
    • Memberships
  • Group's creation, Group's update
    • Attributes
    • Custom type
    • Default rights
    • Privileges

MyGroupDynamic.properties

This file allows to configure dynamic groups relative pages :

  • Dynamic group tab
  • Rule's test page

MyPerson.properties

This file allows to configure persons relative pages :

  • person's properties :
    • Attributes
    • Memberships
    • Privileges
    • Subscription

Internationalization

Labels

The files containing the application's labels which are not created during the database generation step are located in :

  • /ESCO-Grouper/metier/esco-web/src/main/resources/properties/i18n/bundles/screen/
  • /ESCO-Grouper/metier/esco-web/src/main/resources/properties/i18n/bundles/
  • /ESCO-Grouper/metier/esco-module/dynamique-groupe/src/main/resources/properties/i18n/plugins/screen/

Exceptions

You can configure different error messages on each screens. Here is the List of the prefixes you must use for the summary screens :

  • org.esco.grouperui.group.resume. : group's properties summary screen.
  • org.esco.grouperui.person.resume. : person's properties summary.
  • org.esco.grouperui.stemmodification.resume. : folder's administration's summary screen.
  • org.esco.grouperui.groupmodification.resume. : group's administration's summary screen.

Example :
The default behavior when the ESCOGroupNotSaveException is fired is to display the message : “Le groupe n'a pas été enregistré”.
You can change that message by changing the corresponding key. For example, if you wanna change that message for the group's properties summary screen, you just have to create the following key in the Error_XX file :

Contextual help

Contextual help labels are located in the internationalization files and have their keys ending with “_TITLE”.
If the key is missing, something like “???KEY???” will shows up.
If you don't wanna display the contextual help for an element, simply remove the value of the key. For example :

Stratégies

Persons Search

The “grouper­api­strategy.xml” file allows to define the persons search strategy to use depending on an evaluated expression.

In the above example, the "UAIStrategySubjectSearch" strategy will be used for all groups which have their path matching the provided regular expression.
The variables you can use in the expression are the following ones :

  • term : the search term, which could contain joker characters ;
  • path : the path from which the search is run ;
  • person : the person executing the search.

Groups search

The “grouper­client­strategy.xml” file allows to define the groups search strategy to use depending on an evaluated expression. This file is located in “ESCO­Grouper/ext/grouper­client.fragment/src/main/ressources/spring” directory.

In the above example, there is only a default strategy declared.
The variables you can use in the expression are the following ones :

  • field : the attribute on which the user is searching. (values can be “name”, “displayName” and “extension”) ;
  • type : search type (simple or for adding purpose). Values can be “SIMPLE” or “ADD” ;
  • path : the path from which the search is run ;
  • term : the search term, which could contain joker characters ;
  • subject : the person executing the search.

Default rule displayed when creating a dynamic group

The “group­dynamic­strategy.xml” file allows to define the default rule which will be displayed when creating a dynamic group. Again, it's based on a regular expression which will be evaluated.

In the above example, the "UAIStrategyRequestFactory" strategy is used for the folders matching the provided regular expression.
The variables you can use in the expression are the following ones :

  • stem : the folder where the user is creating the group ;
  • person : the person executing the search.

Profiles management

To be able to configure the application depending of which user is connected, you can configure different profiles.
The profile can be retrieved in both ways :

  • By giving the profile parameter to the URL (profile=*profile­name*) if the application is in servlet mode
  • By retrieving it from the portal if the application is in portlet mode.

The profile mechanism is explained in « ESCO­Grouper ­ Manuel de développement v1.00.pdf ».
The important thing to know is that there are some “*Profile.xml” files you can modify to allow or deny features depending on users.

Adding a profile

To add a profile, you just have to add an XML file in the profiles directory. It will be loaded automatically when the application starts.

Content of a profile

This example file will create a “testProfile” profile which will allow users to access folders properties in ESCO­Grouper.
You'll find at the end of that document all the available keys that could be used to define your profiles.

SMTP server

The SMTP server is used to send mails when technical errors occurs.
The “smtp.xml” file should only be modified when you want to use several SMTP servers with ESCO­Grouper.
If you only have one SMTP server, the configuration should be done in “ESCOGrouper.properties” file.

Online Help

The Help_XX.properties file, located in “ESCOGrouper/metier/escoweb/src/main/resources/properties/i18n/bundles/screen”, is in charge of the mapping between the screen aliases and the files containing the help contents.
For example, here is the key associated to the navigation's area online help :

The HTML files can be hot modified on the Tomcat server.

Warning : As the files can be placed anywhere on the server, you must be careful to the path you set, mostly if the deployment context is different.

Banner management

To display the banner, you must set to true the displaying parameter in the "/ESCO-Grouper/metier/esco-web/src/web/webapp/media/js/esco/option.js" file.

To hide it, set the parameter to false.

Annexes

Environnements

The configuration files modified to install the application are the following :

  • \ESCOGrouper\metier\esco-web\src\main\filters\filters.properties
  • \ESCOGrouper\metier\esco-web\src\main\resources\properties\config.properties
  • \ESCOGrouper\metier\esco-web\src\main\resources\properties\env.properties
  • \ESCOGrouper\metier\esco-web\src\main\resources\properties\applicationContext.xml

filter.properties

This file contains filters used to create Grouper's configuration's files (“grouper­client.properties”, “sources.xml”, “grouper.hibernate.properties” and “log4j.properties”). When you'll compile the project with Maven, these variables will be replaced in the corresponding files.

Environment variables required in “grouper.client.properties”

Key Description
Example
grouperClient.ldap.url LDAP URL for Grouper client ldap://172.31.142.71/dc=esco-portail,dc=org
grouperClient.ldap.login LDAP admin login admin
grouperClient.ldap.password LDAP admin password passwd
grouperClient.webService.url Grouper web service URL http://localhost:8080/grouper-ws/servicesRest/
grouperClient.webService.login Grouper webservice login grouper
grouperClient.webService.password Grouper webservice password passwd

Environment variables required in “sources.xml”

Key Description Example
PROVIDER_URL LDAP server URL ldap://172.31.142.71:389
SECURITY_PRINCIPAL LDAP bind dn cn=admin,dc=esco-portail,dc=org
SECURITY_CREDENTIALS LDAP password admin
base LDAP base dn ou=people,dc=esco-portail,dc=org

Environment variables required in “grouper.hibernate.properties”

Key Description Example
hibernate_driver_class Grouper database driver com.mysql.jdbc.Driver
hibernate_username Grouper database login grouper
hibernate_password Grouper database password passwd
hibernate_url Grouper database JDBC url jdbc:mysql://escogrouper:3306/grouper?characterEncoding=UTF-8

Environment variables required in “log4j.properties”

Key Description
log4j.appender.grouper_event.File Grouper events log file
log4j.appender.grouper_error.File Grouper errors log file
log4j.appender.grouper_debug.File Grouper debug log file

config.properties

This file is ESCO­Grouper config file. It allows to configure the environment variables required by CAS and to define the relative paths of the medias.

Key Description Exemple
mediaPath.portlet Relative path to access the medias (in portlet mode) /ESCOGrouper/media
mediaPath.servlet Relative path to access the medias (in servlet mode) ../media
cas.url.login CAS login URL https://localhost:8443/cas/login
cas.url.logout CAS logout URL https://localhost:8443/cas/logout
cas.url.validator CAS Validation URL https://localhost:8443/cas
app.spring.ckeck Session's Checking URL https://localhost:8443/ESCOGrouper/j_spring_cas_security_check
cas.service CAS URL https://localhost:8443/cas
casValidateUrl CAS proxy validation URL https://localhost:8443/cas/proxyValidate
proxyCallbackUrl CAS proxy callback URL https://localhost:8443/ESCOGrouper/casProxyCallback
ldap.url LDAP URL ldap://0.0.0.0:389/
ldap.dn LDAP bind dn cn=admin,dc=esco-portail,dc=org
ldap.password LDAP password admin
ldap.basedc LDAP base dn dc=esco-portail,dc=org
ldap.baseuid LDAP people branch ou=people,dc=esco-portail,dc=org
ldap.basehasMember LDAP group branch ou=groups,dc=esco-portail,dc=org

env.properties

This is the Derby database (memory database) configuration file.

Key Description Example
environnement.type Environment type Dev
version Application's version 2.2.00
parameter.db.classname Database driver org.apache.derby.jdbc.ClientDriver
parameter.db.port Database port 1527
parameter.db.host Database host 0.0.0.0.0
parameter.db.url Database JDBC URL jdbc:derby://localhost:1527/opt/tomcat/esco/data/ESCODB;create=true;
parameter.db.username Database username sa
parameter.db.password Database password manager

applicationContext.xml

This is the main Spring beans definition file. It allows to define the authentication type for the application (local with specific users or CAS). The users in local authentication are defined in “auth­form.xml” file.

Dynamic groups

The “dynConfig.properties” file of the dynamic group project must be configured to setup the dynamic group feature. It's located in “ESCOGrouper\metier\esco­module\dynamique­groupe\src\main\resources\properties” directory

Key Description Example
dynamic.key.attribute.ldaprequest Name of the grouper's attribute used to store the request defining the dynamic group. (name of the attribute in grouper_field table) rule
dynamic.value Name of the custom grouper group type associated to dynamic groups. (name of the group type defined in “grouper_types” table) dynamic
tab.regpresent Replace in the tab the value «dynamique » with the one provided in the “dynamic.value” key.  
tab.group.regpresent Replace in the tab the value «dynamique » with the one provided in the “dynamic.value” key.  

Summary table of possible keys for the profile management

Navigation area    
org.esco.grouperui.web.areaNavigation Display or hide the navigation area
Menu contextuel  
org.esco.grouperui.web.menu.createGroup Contextual menu for group creation
org.esco.grouperui.web.menu.createStem Contextual menu for stem creation
org.esco.grouperui.web.menu.search Contextual menu for simple search (depends of the navigation area)
org.esco.grouperui.web.menu.administrate Contextual menu for group or stem administration
org.esco.grouperui.web.menu.properties Contextual menu for group or stem properties
org.esco.grouperui.web.menu.optin Contextual menu for subscribinf a group
org.esco.grouperui.web.menu.optout Contextual menu for unsubscribing a group
org.esco.grouperui.web.menu.delete Contextual menu for deleting a group or a stem
Propriété de personnes  
org.esco.grouperui.web.person.properties Allow or not the access to person properties screen
org.esco.grouperui.web.person.properties.tab.memberships Display or hide the memberships tab in the person properties screen
org.esco.grouperui.web.person.properties.tab.privileges Display or hide the privileges tab in the person properties screen
org.esco.grouperui.web.person.properties.tab.subscriptions Display or hide the subscription tab in the person properties screen
Propriété de groupes  
org.esco.grouperui.web.group.properties Allow or not the access to group properties screen
org.esco.grouperui.web.group.properties.tab.members Display or hide the members tab in the group properties screen
org.esco.grouperui.web.group.properties.tab.memberships Display or hide the memberships tab in the group properties screen
org.esco.grouperui.web.group.properties.tab.privileges Display or hide the privileges tab in the group properties screen
Modification de groupes  
org.esco.grouperui.web.group.modification Allow or not the access to the group modify screen
Propriété de dossiers  
org.esco.grouperui.web.stem.properties Allow or not the access to the stem properties screen
Modification de dossiers  
org.esco.grouperui.web.stem.modification Allow or not the access to the modify stem screen
org.esco.grouperui.web.stem.modification.tab.privileges Display or hide the privileges tab in the modify group screen
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.