From a069978a4a0ace804cf4a4bc1322847eadae6e0f Mon Sep 17 00:00:00 2001 From: Christian Murphy Date: Wed, 25 Jan 2023 12:45:57 -0700 Subject: [PATCH] docs: migrate uPortal manual to uportal-project.github.io --- docs/README.md | 4 - docs/_config.yml | 3 - docs/en/README.md | 22 -- docs/en/content/README.md | 5 - docs/en/content/portlets.md | 45 --- docs/en/content/resource-server.md | 76 ----- docs/en/content/webjars.md | 38 --- docs/en/data/README.md | 21 -- docs/en/data/lockdown-layouts.md | 47 --- docs/en/data/timeout.md | 25 -- docs/en/database/README.md | 99 ------ docs/en/database/db2.md | 120 -------- docs/en/database/hypersonic.md | 0 docs/en/database/jndi-managed-datasources.md | 0 docs/en/database/mariadb.md | 99 ------ docs/en/database/ms-sqlserver.md | 0 docs/en/database/mysql.md | 1 - docs/en/database/oracle.md | 44 --- docs/en/database/postgresql.md | 37 --- docs/en/database/sybase.md | 0 docs/en/frontend/README.md | 8 - docs/en/frontend/RENDERING_PIPELINE.md | 190 ------------ docs/en/frontend/SKINNING_UPORTAL.md | 86 ------ docs/en/frontend/USING_ANGULAR.md | 282 ----------------- docs/en/images/uPortal-logo.jpg | Bin 9631 -> 0 bytes docs/en/integrations/README.md | 101 ------ docs/en/sysadmin/docker.md | 138 --------- docs/en/sysadmin/tomcat-env-vars.md | 88 ------ docs/en/testing/perf/README.md | 55 ---- docs/en/tomcat/README.md | 219 ------------- docs/en/tomcat/debugging-with-jpda.md | 8 - docs/en/tomcat/fronting-with-httpd.md | 158 ---------- docs/en/tomcat/ssl-configuration.md | 118 ------- docs/fr/README.md | 308 ------------------- docs/fr/database/README.md | 100 ------ docs/fr/database/db2.md | 119 ------- docs/fr/database/hypersonic.md | 1 - docs/fr/database/jndi-managed-datasources.md | 1 - docs/fr/database/mariadb.md | 100 ------ docs/fr/database/ms-sqlserver.md | 1 - docs/fr/database/mysql.md | 1 - docs/fr/database/oracle.md | 44 --- docs/fr/database/postgresql.md | 1 - docs/fr/database/sybase.md | 1 - docs/fr/frontend/README.md | 8 - docs/fr/frontend/RENDERING_PIPELINE.md | 190 ------------ docs/fr/frontend/SKIN_UPORTAL.md | 97 ------ docs/fr/frontend/USING_ANGULAR_fr.md | 257 ---------------- docs/fr/integrations/README.md | 25 -- docs/fr/tomcat/README.md | 216 ------------- docs/fr/tomcat/fronting-with-httpd.md | 158 ---------- docs/fr/tomcat/ssl-configuration.md | 116 ------- 52 files changed, 3881 deletions(-) delete mode 100644 docs/README.md delete mode 100644 docs/_config.yml delete mode 100644 docs/en/README.md delete mode 100644 docs/en/content/README.md delete mode 100644 docs/en/content/portlets.md delete mode 100644 docs/en/content/resource-server.md delete mode 100644 docs/en/content/webjars.md delete mode 100644 docs/en/data/README.md delete mode 100644 docs/en/data/lockdown-layouts.md delete mode 100644 docs/en/data/timeout.md delete mode 100644 docs/en/database/README.md delete mode 100644 docs/en/database/db2.md delete mode 100644 docs/en/database/hypersonic.md delete mode 100644 docs/en/database/jndi-managed-datasources.md delete mode 100644 docs/en/database/mariadb.md delete mode 100644 docs/en/database/ms-sqlserver.md delete mode 100644 docs/en/database/mysql.md delete mode 100644 docs/en/database/oracle.md delete mode 100644 docs/en/database/postgresql.md delete mode 100644 docs/en/database/sybase.md delete mode 100644 docs/en/frontend/README.md delete mode 100644 docs/en/frontend/RENDERING_PIPELINE.md delete mode 100644 docs/en/frontend/SKINNING_UPORTAL.md delete mode 100644 docs/en/frontend/USING_ANGULAR.md delete mode 100644 docs/en/images/uPortal-logo.jpg delete mode 100644 docs/en/integrations/README.md delete mode 100644 docs/en/sysadmin/docker.md delete mode 100644 docs/en/sysadmin/tomcat-env-vars.md delete mode 100644 docs/en/testing/perf/README.md delete mode 100644 docs/en/tomcat/README.md delete mode 100644 docs/en/tomcat/debugging-with-jpda.md delete mode 100644 docs/en/tomcat/fronting-with-httpd.md delete mode 100644 docs/en/tomcat/ssl-configuration.md delete mode 100644 docs/fr/README.md delete mode 100644 docs/fr/database/README.md delete mode 100644 docs/fr/database/db2.md delete mode 100644 docs/fr/database/hypersonic.md delete mode 100644 docs/fr/database/jndi-managed-datasources.md delete mode 100644 docs/fr/database/mariadb.md delete mode 100644 docs/fr/database/ms-sqlserver.md delete mode 100644 docs/fr/database/mysql.md delete mode 100644 docs/fr/database/oracle.md delete mode 100644 docs/fr/database/postgresql.md delete mode 100644 docs/fr/database/sybase.md delete mode 100644 docs/fr/frontend/README.md delete mode 100644 docs/fr/frontend/RENDERING_PIPELINE.md delete mode 100644 docs/fr/frontend/SKIN_UPORTAL.md delete mode 100644 docs/fr/frontend/USING_ANGULAR_fr.md delete mode 100644 docs/fr/integrations/README.md delete mode 100644 docs/fr/tomcat/README.md delete mode 100644 docs/fr/tomcat/fronting-with-httpd.md delete mode 100644 docs/fr/tomcat/ssl-configuration.md diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 1f2625e48a..0000000000 --- a/docs/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# uPortal Start - -- [:gb: English](en) -- [:fr: Français](fr) diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index c8c0aca1e6..0000000000 --- a/docs/_config.yml +++ /dev/null @@ -1,3 +0,0 @@ -plugins: - - jemoji - - jekyll-sitemap diff --git a/docs/en/README.md b/docs/en/README.md deleted file mode 100644 index b9c6dc3fa1..0000000000 --- a/docs/en/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# uPortal Start Manual - -These pages contain documentation for using uPortal-start. They will help you understand and use -the features of uPortal-start, such as the build system and CLI tools. - -**NOTE:** This manual is _not_ a comprehensive reference for configuring each of the modules -included with uPortal-start. Individual modules typically have their own documentation. For -example, detailed information for configuring uPortal (one of the modules _"bundled"_ with -uPortal-start) can be found in the [uPortal 5.x Manual][]. - -:warning: Warning uPortal-start provide datas in `data/quickstart` and properties in `etc/portal/` only for a demonstration use, -this configuration should not be use in production without checking on ( for details see [Data files (en)](data/README.md)). - -## Topics - -* [Database Configuration](database/README.md) -* [Tomcat Configuration](tomcat/README.md) -* [Integrations](integrations/README.md) -* [Data files](data/README.md) -* [Adding Content to uPortal-start](content/README.md) - -[uPortal 5.x Manual]: https://uPortal-Project.github.io/uPortal diff --git a/docs/en/content/README.md b/docs/en/content/README.md deleted file mode 100644 index b183ea5126..0000000000 --- a/docs/en/content/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Adding Content to uPortal-start - - - [Java Portlet Applications](portlets.md) - - [Resource Server](resource-server.md) - - [Web Components/Webjars](webjars.md) diff --git a/docs/en/content/portlets.md b/docs/en/content/portlets.md deleted file mode 100644 index 09c4c1ff48..0000000000 --- a/docs/en/content/portlets.md +++ /dev/null @@ -1,45 +0,0 @@ -# Adding Portlet to uPortal-start - -uPortal-start support the deployment of several web applications context like an overlay system. -In that way you will be able to deploy every application packaged as WAR, like portlet. - -## Create `my-portlet` Directory - -First step is to create a `my-portlet/` directory in the overlay forlder for your portlet to deploy. - -```sh -$ mkdir -p overlays/my-portlet -``` - -## Define the project to deploy - -Create the `build.gradle` file into `overlays/my-portlet` directory to describe the dependency to deploy as follow (more scripting can be needed to init database as example) - -```gradle -import org.apereo.portal.start.gradle.plugins.GradlePlutoPlugin - -apply plugin: GradlePlutoPlugin - -dependencies { - runtime "artifact-id:artifact-group:${MyPortletVersion}@war" -} - -war { - archiveName 'my-portlet.war' -} -``` - -Add the overlay module to the global project at the end of the `setting.gradle` file -```gradle -include 'overlays:my-portlet' -``` - -Add the property to define the `my-portlet` version war to deploy in the `gradle.properties` -```properties -MyPortletVersion=X.Y -``` - -## Customize the deployment - -You can customize the packages properties with the overlay system by providing a customized version of war files following the same path deployed file. -As example you can cutomize log configurations, for that copy from the deployed path the logback.xml file and customize it ! \ No newline at end of file diff --git a/docs/en/content/resource-server.md b/docs/en/content/resource-server.md deleted file mode 100644 index 59393d34f6..0000000000 --- a/docs/en/content/resource-server.md +++ /dev/null @@ -1,76 +0,0 @@ -# Adding Resources to Resource Server - -uPortal supports the caching of static files in the Resource Server module. -While several JavaScript packages are included, you can add your own. - -The following manual approach captures the actual static files in your repo. - -## Check Existing Resources - -To see what is currently including in `resource-server`, you can visit [https://github.com/Jasig/resource-server/tree/master/resource-server-content/src/main/webapp/rs](https://github.com/Jasig/resource-server/tree/master/resource-server-content/src/main/webapp/rs). - -Alternately, you can simply look at the deployed `resource-server`'s `rs/` directory -in Tomcat's `webapps` directory. - -Another approach to consider is using [WebJars](webjars.md). If the package does -not currently exist in `rs/`, check if there is a WebJar implementation. You can -find them at [Maven Repository](https://mvnrepository.com/artifact/org.webjars). - -The [WebJars document](webjars.md) covers how to add webjars -to Resource Server via Gradle configuration over this manual approach. - -There is also another version of Resource Server currently deployed with -`uPortal-start`. `ResourceServingWebapp` contains out-dated packages that -some uPortal components require. Again, look at your Tomcat deployment -to see what is actually available. ***Use of this module is discouraged.*** - -## Create `rs/` Directory - -First step is to create an `rs/` directory in the Resource Server -overlay for your static content. - -```sh -$ mkdir -p overlays/resource-server/src/main/webapp/rs -``` - -## Understand Naming Convention - -Before adding static files, there is a naming convention that should be -followed. - -Under `rs/`, the first level of directories are the names of the -packages. Some examples are `jquery`, `fontawesome`, `fetch`, `bootstrap`. - -Under each package directory, directories matching versions follow. -For example, under `bootstrap`, you might find `2.3.2`, `3.0.0`, `3.1.1`, `3.3.5`. - -Beyond the version directories, the file layout depends on the package. -Several packages will simply have the static files. Other packages may -have subdirectories like `css`, `img` and `js`. - -## Add Static Files - -Following the naming convention create appropriate directories and files. -As an example, here is how to add Backbone, version 1.3.3: - -```sh -$ mkdir -p overlays/resource-server/src/main/webapp/rs/backbone/1.3.3 -$ cd overlays/resource-server/src/main/webapp/rs/backbone/1.3.3 -$ unzip ~/Downloads/backbone-1.3.3.zip -$ ls -1 -backbone-1.3.3.js -backbone-1.3.3.min.js -``` - -Our hypothetical `backbone-1.3.3.zip` has only these 2 files. - -## Reference Static Files - -These files will be available after the next deployment. These can be referenced -in JSPs, the most likely scenario. - -For example: - -```html - -``` diff --git a/docs/en/content/webjars.md b/docs/en/content/webjars.md deleted file mode 100644 index 4057caae76..0000000000 --- a/docs/en/content/webjars.md +++ /dev/null @@ -1,38 +0,0 @@ -# Adding WebJars to uPortal-start - -WebJars are a relatively recent addition to the web application development landscape. They are -client-side web libraries (typically JavaScript and/or CSS) packaged into JAR (Java Archive) files. - -## Introducing the `resource-server` - -The `resource-server` is a bundled module in uPortal-start. You can easily deploy WebJars with -uPortal and use their contents to build a compelling portal experience by declaring them as -dependencies of the `overlays:resource-server` sub-project. - -Edit the `dependencies` section of the `overlays/resource-server/build.gradle` file to add WebJars -from Maven Central. - -An alternative to WebJars is to manually add static files to resource server. WebJars are the -preferred approach; however, this method is detailed [here](resource-server.md) for cases where -WebJar implementations are not available. - -### WebJar Dependency Example - -```gradle - - runtime 'org.webjars.npm:uportal__content-carousel:1.6.0@jar' -``` - -**NOTE:** In most cases, you should include the `@jar` classifier with your WebJar dependency. This -classifier tells Gralde not to pull transitive dependencies of your WebJar. (Transitive -dependencies may be needed if you were extending the component in Node.js, but typically aren't -required for using the component in a browser.) - -## Using Files Within WebJars - -Once your WebJar is available within the `resource-server`, you can access the files they contain in -your browser by using URLs like the following: -`/resource-server/webjars/uportal__content-carousel/1.6.0/dist/content-carousel.js`. - -In this exable, `/uportal__content-carousel/1.6.0/dist/content-carousel.js` is the complete path to -the `content-carousel.js` file within the webjar. \ No newline at end of file diff --git a/docs/en/data/README.md b/docs/en/data/README.md deleted file mode 100644 index 524161a256..0000000000 --- a/docs/en/data/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Data Files - -This section of the documentation covers details of the data files -used to configure uPortal. - -* [Lock Down User Layouts](lockdown-layouts.md) -* [Session Timeout by Group](timeout.md) - -:warning: Please don't consider files under `data/quickstart` as production ready, -these files provides a quickstart ready only and are only for a demo use. - -As example if you enable the uPortal local authentication with the -property `org.apereo.portal.security.provider.SimpleSecurityContextFactory.enabled=true` -and that you import the files under `data/quickstart/user` anyone will be able to connect -to the portal with the link `https://my.university.edu/uPortal/Login?userName=admin&password=admin`. - -To avoid problems set that property `org.apereo.portal.security.provider.SimpleSecurityContextFactory.enabled` to `false` -into `etc/portal/uPortal.properties` and check that property isn't enabled and overriding it anywhere (uPortal set it as `false` by default, - but uPortal-start enable it). And test access. -On an other way if you need to keep these users and a such auth system consider to change default password ! - diff --git a/docs/en/data/lockdown-layouts.md b/docs/en/data/lockdown-layouts.md deleted file mode 100644 index 9afd0db013..0000000000 --- a/docs/en/data/lockdown-layouts.md +++ /dev/null @@ -1,47 +0,0 @@ -# Lock Down User Layouts - -It is now common practice to lock down user layouts such that non-admin users cannot -modify what is on the page. This is especially so with new layouts where grids with -filters and/or "Favorite" carousels are prominent. - -This is accomplished by denying `CUSTOMIZE` and `ADD_TAB` permissions in `UP_SYSTEM`. -There are already default versions of files that `GRANT` these permissions in the -`base` data set. - -The originals are: - -````bash -data/base/permission_set/Authenticated_Users__ADD_TAB__UP_SYSTEM.permission-set.xml -data/base/permission_set/Authenticated_Users__CUSTOMIZE__UP_SYSTEM.permission-set.xml -```` - -And should be copied to your permission_set data directory, changing target -`permission-type` to `DENY`. - -```xml - - UP_SYSTEM - org.apereo.portal.groups.IEntityGroup - - Authenticated Users - - ADD_TAB - - ALL - - -``` - -```xml - - UP_SYSTEM - org.apereo.portal.groups.IEntityGroup - - Authenticated Users - - CUSTOMIZE - - ALL - - -``` diff --git a/docs/en/data/timeout.md b/docs/en/data/timeout.md deleted file mode 100644 index 28b8ca7fcf..0000000000 --- a/docs/en/data/timeout.md +++ /dev/null @@ -1,25 +0,0 @@ -# Session timeout by Group - -Session timeout can be configured on a group by group basis. This is done -through the `MAX_INACTIVE` permission. This value defines the maximum -inactive time in seconds before the user in this group is prompted to stay -logged in or their session closed. - -Below is an example for Staff with a timeout of 8 hours. - -```xml - - UP_SYSTEM - org.jasig.portal.groups.IEntityGroup - - Staff - - MAX_INACTIVE - - 28800 - - -``` - -A user can confirm their timeout value by checking the session API endpoint at -`/uPortal/api/session.json`. diff --git a/docs/en/database/README.md b/docs/en/database/README.md deleted file mode 100644 index 1caa06558b..0000000000 --- a/docs/en/database/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# Configure the database - -uPortal is configured to use a file-based HSQL database by default. - -**This database configuration is not suitable for production deployments and best used for testing purposes.** - -uPortal does support a number of popular production-class databases and you can configure the database by following the examples posted under Production Database Configuration. - -## Step 1: Capture the database driver version - -After determining the driver's Maven coordinates, open `gradle.properties` file, and add the driver version coordinate -as a property value. - -For example, the MS SQL Server driver version is captured in `mssqlJdbcVersion` below: - -```groovy -jasyptVersion=1.9.2 -mssqlJdbcVersion=7.2.1.jre8 -personDirectoryVersion=1.8.5 -``` - -## Step 2: Add the database driver dependency - -Open `overlays/build.gradle` file, and add the driver coordinates below -the hsqldb coordinates around line 46. Make sure to use the version property defined in the first step. - -As an example, a driver for SQL Server is added: - -```groovy - dependencies { - /* - * Add additional JDBC driver jars to the 'jdbc' configuration below; - * do not remove the hsqldb driver jar that is already listed. - */ - jdbc "org.hsqldb:hsqldb:${hsqldbVersion}" - jdbc "com.microsoft.sqlserver:mssql-jdbc:${mssqlJdbcVersion}" - - ... - } -``` - -## Step 3: Capture generic details - -While credentials and database URL should not be saved to your repo, driver class, dialect and validation query -can usually be persisted without security concerns. - -In `etc/portal/global.properties`, save database details that are consistent across environments: - -```groovy -hibernate.connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver -hibernate.connection.url=jdbc:sqlserver://localhost:1433; -hibernate.connection.username=sa -hibernate.connection.password= -hibernate.dialect=org.hibernate.dialect.SQLServerDialect -hibernate.connection.validationQuery=select 1 -``` - -## Step 4: Copy `global.properties` to local environment location and add credentials and URL - -In uPortal 5, deployers are strongly encouraged to configure a local `portal.home` directory to keep configuration that is specific to the environment but should not be captured in a repo. In particular, database and other service -credentials should not be captured. If `portal.home` is not configured, the default is the portal/ directory in Tomcat. - -During `./gradlew portalInit` or `./gradlew tomcatInstall`, the files from the repo's `etc/portal/` directory are -copied to `portal.home`. One of those two tasks is a pre-requisite to this step. - -In `global.properties` in the `portal.home` directory, edit the connection details: - -```groovy -hibernate.connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver -hibernate.connection.url=[actual URL for this server] -hibernate.connection.username=[actual user for this db] -hibernate.connection.password=[actual password for this db] -hibernate.dialect=org.hibernate.dialect.SQLServerDialect -hibernate.connection.validationQuery=select 1 -``` - -## Step 5: Specific portlet / uPortal database configuration (optional) - -The default configuration come from the file `global.properties` in the `portal.home` directory to deploy all applications. -But it's possible to define a specific configuration per application/portlet, the `global.properties` will be always used but it could be overriden by a specific property file if found. - -For the uPortal database you will need to add database's' properties from `global.properties` into `uPortal.properties` file. -For each portlets you should define same properties by adding the `specific-portlet.properties` into the `portal.home` directory, where `specific-portlet.properties` is the file name defined in the portlet spring context definition sources. -As example, for `NewsReaderPortlet` the named file will be `news-reader.properties`, the file name can be found [in the NewsReaderPortlet project here.](https://github.com/Jasig/NewsReaderPortlet/blob/master/src/main/resources/context/databaseContext.xml) - -Note: Also these files can be used for other properties ! - -## uPortal Production Database Configuration - -Select the database below for notes and examples of configuration. - -+ [DB2](db2.md) -+ [Hypersonic](hypersonic.md) -+ [Microsoft SQL Server](ms-sqlserver.md) -+ [MySQL](mysql.md) -+ [MariaDB](mariadb.md) -+ [Oracle RDBMS](oracle.md) -+ [PostgreSQL](postgresql.md) -+ [Sybase](sybase.md) diff --git a/docs/en/database/db2.md b/docs/en/database/db2.md deleted file mode 100644 index 81c824573c..0000000000 --- a/docs/en/database/db2.md +++ /dev/null @@ -1,120 +0,0 @@ -# Using uPortal with DB2 - -## Step 1: Obtain the Driver - -Since the DB2 JDBC driver is not available in the central Maven repository, it must be placed into the local repository of each machine on which you wish to build uPortal. - -As an alternative to this, you could set up a maven repository for use by multiple machines. - -A JDBC DB2 driver is included in the DB2 software in the `java` subdirectory after DB2 installation has been performed. To install the JAR into your local maven repository, use the following command: - -``` -mvn install:install-file -DgroupId=com.ibm.db2 -DartifactId=db2-jdbc -Dversion= -Dpackaging=jar -DgeneratePom=true -Dfile=db2java.zip.jar -``` - - -The `groupId`, `artifactId` and `version` specified in this command are up to you, but they should match the JAR vendor, name and version to avoid confusion down the road. - -## Step 2: Configure the Database Filter - -In the filters folder, locate the default `local.properties` file under `uPortal-4.1.x/filters/local.properties` and configure the Database Connection Settings - -```shell -# HSQL Configuration -environment.build.hsql.port=8887 - -# Database Connection Settings -environment.build.hibernate.connection.driver_class=COM.ibm.db2.jdbc.app.DB2Driver -environment.build.hibernate.connection.url=jdbc:db2:uPortal3Db -environment.build.hibernate.connection.username=sa -environment.build.hibernate.connection.password= -environment.build.hibernate.dialect=org.hibernate.dialect.DB2Dialect -``` - -## Step 3: Add the database driver - -Open `uportal-db/pom.xml` file, uncomment the db2 driver below and modify as needed. - -Add the appropriate version properties to the root `pom.xml` file or enter the appropriate version below - -```xml - - - - org.hsqldb - hsqldb - ${hsqldb.version} - compile - - - - - - com.ibm.db2 - db2-jdbc - ${db2.version} - compile - - - - -``` - -## Step 4: Test the Configuration - -Running the `dbtest` ant target will tell you if you have configured the database connection properly. - -```shell -ant dbtest -``` - -## Step 5: Build and Deploy - -Following a successful test, you can execute the command below to build the database tables and copy files to your servlet container. - -Executing the command `ant clean initportal` **will drop and recreate the database tables and all existing data will be lost**. This will result in a clean uPortal database structure. If you want to keep the contents of your existing database, use `ant clean deploy-war` . - -```shell -ant clean initportal -``` - -## Step 6: Restart Tomcat - - - - -## Issues and Known Bugs - -Some people have encountered problems with database drivers with certain web application environments if the classes zip file is used as-is with the `.zip` file extension. Simply renaming the file to a `.jar` file seems to fix the problem. Alternatively, unzipping the classes file into a directory structure, then using the jar command to repackage the classes into a jar file works as well. diff --git a/docs/en/database/hypersonic.md b/docs/en/database/hypersonic.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en/database/jndi-managed-datasources.md b/docs/en/database/jndi-managed-datasources.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en/database/mariadb.md b/docs/en/database/mariadb.md deleted file mode 100644 index 81c6ab63cc..0000000000 --- a/docs/en/database/mariadb.md +++ /dev/null @@ -1,99 +0,0 @@ -# Configuration with MariaDB Database - -As working example you can watch on travis configuration test in `uPortal-start/.travis/conf/database/mariadb/` - -## Step 1: MariaDB server setup -Edit the file /etc/mysql/mariadb.conf.d/60-server.cnf. (Debian 9) -In the `[mysqld]` part add the following items : - -```properties -default-storage-engine=INNODB -lower_case_table_names=1 -innodb-large-prefix=1 -innodb_file_format=Barracuda -innodb_file_format_check=1 -innodb_file_format_max=Barracuda -innodb_file_per_table=1 -innodb_strict_mode=ON - -innodb_buffer_pool_size=2G -innodb_data_home_dir=/var/lib/mysql/ -innodb_data_file_path=ibdata1:100M:autoextend -innodb_flush_log_at_trx_commit=1 -innodb_log_file_size=256M -innodb_log_buffer_size=64M -``` - -**NOTE:** From mariaDB 10.1.35 add this configuration: -```properties -innodb_default_row_format=dynamic -``` -This permit to create by default all tables with the `row_format=dynamic` if not provided. - -In addition you can indicate these properties to define UTF-8 as default, this is optional if you create your your database with the character set `uft8mb4` and the associated collation (see below). -```properties -character-set-server = utf8mb4 -collation-server = utf8mb4_unicode_520_ci -``` - -## Step 2: Configure the user and database - -Connect to the database server. -```SQL -CREATE USER 'uportal'@'localhost' IDENTIFIED BY 'uportal'; -create database uportal CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; -GRANT ALL PRIVILEGES ON uportal.* TO 'portail'@'localhost'; -# If you want to install portlets on a specific database -# create database portlet CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; -# GRANT ALL PRIVILEGES ON portlets.* TO 'portail'@'localhost'; -``` - -With MariaDb and Mysql the default character set should be set to `utf8mb4` instead of `utf8` as the mysql UTF-8 encoding is only a support of 3-bytes UTF-8 unicode encoding. -The 3-bytes part is not a full UTF-8 support, this won't support Asian characters and emoticones files. [See here for more details](https://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html) - -Also the collation `utf8mb4_unicode_520_ci` is a new best algorithm for ordering UTF-8 values, but you can stay on 'utf8_unicode_ci' [see the mysql documentation for details](https://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html) - -## Step 3: Configure Uportal - -### Edit uPortal-start/gradle.properties -```properties -mysqldbVersion=5.1.45 -``` -### Edit uPortal-start/overlays/build.gradle -```gradle -dependencies { - /* - * Add additional JDBC driver jars to the 'jdbc' configuration below; - * do not remove the hsqldb driver jar that is already listed. - */ - jdbc "org.hsqldb:hsqldb:${hsqldbVersion}" - jdbc "mysql:mysql-connector-java:${mysqldbVersion}" - -``` - -### Edit uPortal-start/etc/portal/global.properties - -In the Database Connection section -```properties -hibernate.connection.driver_class=com.mysql.jdbc.Driver -hibernate.connection.url=jdbc:mysql://localhost/portlets -hibernate.connection.username=uportal -hibernate.connection.password=uportal -hibernate.connection.validationQuery=select 1 -hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect -``` -You should copy/paste this configuration for each customized database portlet/uPortal context [see global datasource documentation](README.md#step-5-specific-portlet--uportal-database-configuration-optional) - -**NOTE:** Before mariaDB 10.1.35 using the Dialect `org.apereo.portal.utils.MySQL5InnoDBCompressedDialect` was needed if you didn't configured your mariaDB server with the [default row_format or equivalent](mariadb.md#step-1-mariadb-server-setup) - -**NOTE:** Depending on the version of hibernate used and the version of the database server it may be necessary to select an appropriate Dialect [see here](https://github.com/hibernate/hibernate-orm/tree/main/hibernate-core/src/main/java/org/hibernate/dialect) (Be careful to select the correct version according to the tag) - - -## Step 4 : Initialization of the Database -```shell -./gradlew dataInit -``` -## Step 5 : Deployment of uPortal -```shell -./gradlew tomcatDeploy -``` diff --git a/docs/en/database/ms-sqlserver.md b/docs/en/database/ms-sqlserver.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en/database/mysql.md b/docs/en/database/mysql.md deleted file mode 100644 index e8d7252b1b..0000000000 --- a/docs/en/database/mysql.md +++ /dev/null @@ -1 +0,0 @@ -Until Mysql and MariaDB have the same server configuration you can watch on [MariaDB](mariadb.md) configuration ! \ No newline at end of file diff --git a/docs/en/database/oracle.md b/docs/en/database/oracle.md deleted file mode 100644 index 95c910c143..0000000000 --- a/docs/en/database/oracle.md +++ /dev/null @@ -1,44 +0,0 @@ -# Using uPortal with Oracle - -## Step 1: Identify the Driver Version - -The Oracle drivers have been available in Maven Central since mid-2019. -There are several un-official packages. Make sure to use the -[official group](https://mvnrepository.com/artifact/com.oracle.ojdbc). - -There are also variants of OJDBC drivers. uPortal requires Java 8, so the Ojdbc8 variants are required. - -As of this writing, the current version of Ojdbc8 is `19.3.0.0`. - -## Step 2: Configure the Database Connection Properties - -Configure the Database Connection in `etc/portal/global.properties`. For example: - -```properties -hibernate.connection.driver_class=oracle.jdbc.OracleDriver -hibernate.connection.url=jdbc:oracle:thin:@//oracle.example.edu:1521/instance -hibernate.connection.username= -hibernate.connection.password= -hibernate.connection.validationQuery=select 1 from dual -hibernate.dialect=org.hibernate.dialect.Oracle10gDialect -``` - -## Step 3: Add the Database Driver - -In `gradle.properties` add a variable to manage the driver version: - -```gradle -oracleDriverVersion=19.3.0.0 -``` - -In `overlays/build.gradle` add the following line below the line for hsqldb: - -```gradle -jdbc group: 'com.oracle.ojdbc', name: 'ojdbc8', version: "${oracleDriverVersion}" -``` - -## Step 4: Build and Deploy - -You can execute the command below to build the database tables and copy files to your servlet container. - -Executing the command `./gradlew portalInit` :warning: **will drop and recreate the database tables and all existing data will be lost** :warning:. This will result in a clean uPortal database structure. If you want to keep the contents of your existing database, use `./gradlew tomcatDeploy` . diff --git a/docs/en/database/postgresql.md b/docs/en/database/postgresql.md deleted file mode 100644 index 9237cab462..0000000000 --- a/docs/en/database/postgresql.md +++ /dev/null @@ -1,37 +0,0 @@ -# Using uPortal with PostgreSQL - -## Step 1: Identify the driver version - -The PostgreSQL driver is available in [The Central Repository.](https://search.maven.org) - -Search for package `org.postgresql.postgresql` and note the latest available version. - -## Step 2: Configure the database connection properties - -Modify `etc/portal/global.properties` to connect to an existing Postgres database. - -For example, connect to a database named `uportal5` owned by user `admin` with password `secret` as follows: - -```properties -hibernate.connection.driver_class=org.postgresql.Driver -hibernate.connection.url=jdbc:postgresql://localhost:5432/uportal5 -hibernate.connection.username=admin -hibernate.connection.password=secret -hibernate.connection.validationQuery=select version(); -hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect -``` - -## Step 3: Add the database driver - -In `overlays/build.gradle` add the following line below the line for hsqldb -```gradle -jdbc "org.postgresql:postgresql:${postgresqlDriverVersion}" -``` - -`${postgresqlDriverVersion}` can be defined in `gradle.properties`. Otherwise, substitute `${postgresqlDriverVersion}` with the version number found in step 1. - -## Step 4: Build and Deploy - -You can execute the command below to build the database tables and copy files to your servlet container. - -Executing the command `./gradlew portalInit` :warning: **will drop and recreate the database tables and all existing data will be lost** :warning:. This will result in a clean uPortal database structure. If you want to keep the contents of your existing database, use `./gradlew tomcatDeploy` . diff --git a/docs/en/database/sybase.md b/docs/en/database/sybase.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en/frontend/README.md b/docs/en/frontend/README.md deleted file mode 100644 index 596269715b..0000000000 --- a/docs/en/frontend/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Frontend Implementation / Customization -uPortal offers a flexible ability to customize the look and feel of the user experience. - -## Topics - -* [Skinning uPortal](SKINNING_UPORTAL.md) -* [Configuring the uPortal Rendering Pipeline](RENDERING_PIPELINE.md) -* [Using Angular](USING_ANGULAR.md) diff --git a/docs/en/frontend/RENDERING_PIPELINE.md b/docs/en/frontend/RENDERING_PIPELINE.md deleted file mode 100644 index 054fe13e90..0000000000 --- a/docs/en/frontend/RENDERING_PIPELINE.md +++ /dev/null @@ -1,190 +0,0 @@ -# Configuring the uPortal Rendering Pipeline - -uPortal implements rendering of complete pages using a _pipeline_: a nested structure of discrete, -pluggable elements that each implement the same Java interface. The word "pipeline" is suitable -because it invokes the concepts of _movement_ and _throughput_, but in software this design is also -known as the [Decorator Pattern][]. - -The Java interface at the center of the uPortal Rendering Pipeline is `IPortalRenderingPipeline`. -Instances of `IPortalRenderingPipeline` are Spring-managed beans. The primary rendering pipline -bean is assigned an id (in Spring) of `portalRenderingPipeline`. Components in other parts of the -portal (outside the Rendering Pipeline) use this bean (exclusively) to interact with rendering in -the portal. - -The `IPortalRenderingPipeline` interface defines only one method: - -``` java -public void renderState(HttpServletRequest req, HttpServletResponse res) - throws ServletException, IOException; -``` - -## uPortal Standard Pipeline - -The "standard" rendering pipeline is the one that comes with uPortal out-of-the-box: by default, -uPortal 5 uses the same rendering pipeline configuration as uPortal 4.3 -- based on an instance of -`DynamicRenderingPipeline` that contains a number of _components_. - -The components within `DynamicRenderingPipeline` also each implement a single interface: -`CharacterPipelineComponent`, which itself extends -`PipelineComponent`. (The standard rendering pipeline is -hard-wired for XML/XSLT.) Each component implements a discrete step in the rendering of a page -request. - -The standard pipeline includes (as of this writing) the following components (steps): - -1. `analyticsIncorporationComponent` -2. `portletRenderingIncorporationComponent` -3. `portletRenderingInitiationCharacterComponent` -4. `themeCachingComponent` -5. `postSerializerLogger` -6. `staxSerializingComponent` -7. `postThemeTransformLogger` -8. `themeTransformComponent` -9. `preThemeTransformLogger` -10. `themeAttributeIncorporationComponent` -11. `portletRenderingInitiationComponent` -12. `structureCachingComponent` -13. `postStructureTransformLogger` -14. `structureTransformComponent` -15. `preStructureTransformLogger` -16. `structureAttributeIncorporationComponent` -17. `portletWindowAttributeIncorporationComponent` -18. `dashboardWindowStateSettingsStAXComponent` -19. `postUserLayoutStoreLogger` -20. `userLayoutStoreComponent` - -The order of processing for these pipeline components is essentially _backwards_: bottom to top. - -## Using `RenderingPipelineBranchPoint` Beans - -uPortal adopters may configure the Rendering Pipeline to suit their needs. Most common use cases -can be satisfied using `RenderingPipelineBranchPoint` beans. Rendering branch points are Java -objects (Spring-managed beans) that tell some (or all) HTTP requests to follow a different path. -Rendering branch points follow the standard uPortal 5 configuration strategy for Spring-managed -beans: if you supply a properly-configured bean of the correct type (_viz._ -`RenderingPipelineBranchPoint`) to the Spring Application Context, uPortal will _discover_ it and -_do the right thing_. (uPortal will provide it as a dependency to the components that know what -to do with it.) - -uPortal evaluates `RenderingPipelineBranchPoint` beans, if present, in the specified order. If a -branch indicates that it _should_ be followed, it _will_ be followed, and no further branches will -be tested. If no branch is followed, the standard rendering pipeline will be used. - -`RenderingPipelineBranchPoint` beans accept the following configuration settings: - -| Property | Type | Required? | Notes | -| -------- | ---- |:---------:| ----- | -| `order` | `int` | N* | Defines the sequence of branch points when more than one are present (in which case `order` is required). Branches with lower `order` values come before higher values. | -| `predicate` | `java.util.function.Predicate` | Y | If the `predicate` returns `true`, the branch will be followed; otherwise the next branch will be tested. | -| `alternatePipe` | `IPortalRenderingPipeline` | Y | The rendering path that will be followed if the `predicate` returns `true`. | - -### Examples - -The following examples illustrate some typical uses for `RenderingPipelineBranchPoint` beans. Each -of these examples can be configured in -`uPortal-start/overlays/uPortal/src/main/resources/properties/contextOverrides/overridesContext.xml`. - -#### Example 1: Redirect Unauthenticated Users to CAS/Shibboleth - -This example illustrates a commonly-requested feature: disallow unauthenticated access to the -portal. - -``` xml - - - - - - - - - - -``` - -#### Example 2: Integrate uPortal-home - -This example illustrates required uPortal Rendering Pipeline configuration for integration with -[uPortal-home][]. - -``` xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -[Decorator Pattern]: https://en.wikipedia.org/wiki/Decorator_pattern -[uPortal-home]: https://github.com/uPortal-Project/uportal-home diff --git a/docs/en/frontend/SKINNING_UPORTAL.md b/docs/en/frontend/SKINNING_UPORTAL.md deleted file mode 100644 index 4f8fbd5ef2..0000000000 --- a/docs/en/frontend/SKINNING_UPORTAL.md +++ /dev/null @@ -1,86 +0,0 @@ -# Skinning uPortal - -Defining your own skin is one of the most basic changes that makes your uPortal installation your own. - -## Table of Contents - -1. [Creating a skin](#creating-a-skin) -2. [Skin Configuration](#skin-configuration) -3. [Special Notes](#special-notes) - 1. [Dynamic Respondr Skin](#dynamic-respondr-skin) - 2. [Page Effects](#page-effects) - -## Creating a skin - -1. Run `./gradlew skinGenerate -DskinName={skinName}` to create the skin base files. -2. Navigate to the *uportal-war/src/main/webapp/media/skins/respondr* folder -3. Edit *skinList.xml* to point the `` and `` to the new skin name. e.g. - - ``` xml - - {skinName} - {skinName} - - Basic skin for the Respondr theme based on Twitter Bootstrap and Responsive Design - - - ``` - -4. Navigate to the *data/base/portlet-definition* folder -5. Edit *dynamic-respondr-skin.portlet-definition.xml* and add a `` with a `` of `PREFdynamicSkinName` and a `` with the skin name. e.g. - - ``` xml - - PREFdynamicSkinName - {skinName} - - ``` - -6. Navigate to the *data/base/stylesheet-descriptor* folder -7. Edit *Respondr.stylesheet-descriptor.xml* and change the `` to the skin name. e.g. - - ``` xml - - skin - {skinName} - PERSISTENT - Skin name - - ``` - -8. Stop Tomcat. (Run `./gradlew tomcatStop` if using embedded Tomcat in uPortal-start.) -9. Run `./gradlew :overlays:uPortal:dataInit` to apply the changes to the database. -10. Run `./gradlew :overlays:uPortal:tomcatDeploy` to build uPortal with the new skin and deploy it to Tomcat. -11. Start Tomcat. (Run `./gradlew tomcatStart` if using embedded Tomcat in uPortal-start.) -12. :warning: **Don’t forget to add the new skin to Git!** - -## Skin Configuration - -uPortal uses [Less variables](http://lesscss.org/features/#variables-feature) to handle global skin changes. -Changes can be made to override the [Bootstrap variables](/uportal-war/src/main/webapp/media/skins/respondr/common/bootstrap/variables.less) or the [uPortal variables](/uportal-war/src/main/webapp/media/skins/respondr/defaultSkin/less/variables.less), changes should be made to the skin's `variable.less` file. - -## Special Notes - -### Dynamic Respondr Skin - -The color variables 1-6 are the values that the dynamic respondr skin portlet customizes. - -``` less -@color1 -@color2 -@color3 -@color4 -@color5 -@color6 -``` - -![Dynamic Respondr Skin Portlet Page](images/dynamic-respondr-skin.png) - -### Page Effects - -Portal background color and image can have special effects applied. -Setting `@portal-page-body-background-image-filter` allows for any combination [css filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter) to be applied. - -![No background effect](images/background-filter-none.png) - -![Sepia background effect](images/background-filter-sepia.png) diff --git a/docs/en/frontend/USING_ANGULAR.md b/docs/en/frontend/USING_ANGULAR.md deleted file mode 100644 index 19c53767ac..0000000000 --- a/docs/en/frontend/USING_ANGULAR.md +++ /dev/null @@ -1,282 +0,0 @@ -# Strategy for employing Angular.js in portal skins and/or portlets. - -## Definitions - -The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", -"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be -interpreted as described in RFC 2119. - -## Abstract - -AngularJS has become a very popular framework for developing user-facing -functionality. Because of the way Angular prohibits nested bootstrapping of -modules, special care is required for ensuring that multiple users of Angular do -not conflict, which would degrade usability, regardless of how the page skin or -page fragments are combined. - -This document lays out a strategy in which Portal and/or portlets can both use -Angular, and may coexist without conflicting. - -Practically this means that: - -- Angular may be used in portal skins -- Angular portlets may be used, even multiple on the same page without conflict -- Angular portlets may be used in an Angular portal skin without conflict - -## Skins/Portal - -- MUST enable angular portlets doing one of the following: - - Check portlet content for the `` comment - "directive," and if found, use the $compile service on the DOM nodes. - - Use the `$compile` service to compile DOM nodes of all loaded portlets. - - This has the added benefit of allowing a portal to apply directives to - existing standard portlet content if desired. -- MUST create a global window.up.ngApp directive that exposes the Angular - functions `$controllerProvider.register` (with name controller), - `$provide.service`, `$provide.factory`, `$provide.value`, and - `$compileProvider.directive`. See the code directly below for an example. - -```javascript -angular.module('foo').config(function getLazyLoaders($compileProvider, -$controllerProvider, $provide) { - //Register controller helper - window.up.ngApp.controller = function(name, ctrl) { - $controllerProvider.register(name, ctrl); - return window.up.ngApp; - }; - - //Register $provide helpers - ['service', 'factory', 'value'].forEach(function(t) { - window.up.ngApp[t] = function(name, thing) { - $provide[t](name, thing); - return window.up.ngApp; - }; - }); - - //Register directive helper - window.up.ngApp.directive = function(name, dirFactory) { - $compileProvider.directive(name, dirFactory); - return window.up.ngApp; - }; -``` - -## Portlets - -- MUST check for existence of Angular in two ways. - - On global window object (`window.angular`) - - As an as-yet-unloaded script tag with id 'uportal-Angular-script'. -- MUST NOT use the ng-app directive or attempt to bootstrap outside their boundaries/chrome. -- MUST be written as portably as possible and will be expected to work well - with any version of Angular 1.x, as the precise version of Angular is unknown - for most implementations. -- MUST namespace their module names if bootstrapping, as recommended in - [JavaScript Best - Practices](https://wiki.jasig.org/display/UPM41/JavaScript+Best+Practices) -- SHOULD use the `` "directive" as an indicator to - portals that do not $compile all portlet content. - -### Behavior for Angular checks - -- If Angular is found, (e.g. `window.Angular === undefined`, or `typeof Angular - === 'undefined'`) portlets MUST check for the lazy-loader window.up.ngApp - and, if found, use the lazy-loader to register its components. -- If Angular is found, and lazy-loader is not found, then the portlet SHOULD - assume that another portlet is using Angular, proceed to register its own - module, and MUST use Angular.bootstrap to attach itself to the portlet - fragment. For an example, see the bootstrap() function in the [code below](#boilerplate-portal-code). -- If Angular is not found but an existing script element with id - 'uportal-Angular-script' is found, the portlet MUST NOT create a new script - element but rather attach its event handler to the existing script tag. -- If Angular is not found on global scope, portlet MUST create a script DOM - element with id 'uportal-Angular-script', and attach to said DOM element a - 'load' event handler to bootstrap itself, or use `$(window).load` to do so. - -### External Script Files - -- External script files: - - MUST safely create a `window.up.ngBootstrap` object for registration of - bootstrap functions. - - MUST register a `bootstrap` function that takes as a parameter the instance - id as a string. - - MUST check for `up.ngApp` lazy loaders and use them to register if - available. -- JSP files: - - MUST wait until all scripts are loaded (e.g. - `$(window).load` , and then call the given bootstrap function, passing in - its instance id. - - MUST still check for the existence of Angular, and add the script tag if - needed. - - -### Boilerplate Portal Code - -- [Also available](https://github.com/andrewstuart/generator-ng-portlet) as a - [yeoman](http://yeoman.io) generator for convenience. - - -#### Inline script - -```jsp -<%@ page contentType="text/html" isELIgnored="false" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0" %> - - - - - - - - - - - - - -
-

Awesome Things

-
    -
  • {{$index + 1}}. {{thing}}
  • -
-
-``` - -### External scripts - -```jsp -<%@ page contentType="text/html" isELIgnored="false" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0" %> - - - - - - - - - - - - - - -
-

Awesome Things

-
    -
  • {{$index + 1}}. {{thing}}
  • -
-
-``` - -```javascript -(function(window, _) { - 'use strict'; - - if (window.up.ngApp) { - //If loaded, register right away. - register(window.up.ngApp); - } else { - //Otherwise, let jsp call your bootstrapper once Angular is loaded. - window.up = window.up || {}; - window.up.ngBootstrap = window.up.ngBootstrap || {}; - - window.up.ngBootstrap.test = function(n) { - var app = angular.module(n + '-test', []); - register(app); - - var bootEle = document.getElementById(n + '-test'); - angular.bootstrap(bootEle, [n + '-test']); - } - } - - - function register(app) { - app.controller('testController', function($scope) { - $scope.awesomeThings = ['AngularJS', 'Bower', 'Grunt', 'Yeoman', 'uPortal', 'Open Source!']; - }); - } -})(window, up.underscore); -``` - -## Administrators - -- Administrators SHOULD be warned that any portlets they add to their portal - should be checked in a safe environment to ensure functionality and - compatibility diff --git a/docs/en/images/uPortal-logo.jpg b/docs/en/images/uPortal-logo.jpg deleted file mode 100644 index 580f3d33a382cdcfcad90cd75cf018b6909bb697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9631 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. Another -example is to customize CalendarPortlet, name it `-calendar`. -3. Create a `src` directory in the subdirectory -4. Copy source files in this directory as appropriate -5. Create a `build.gradle` file in the subdirectory, following the -below pattern: - -```gradle -description = " Custom Components for " - -apply plugin: 'java' -apply plugin: 'eclipse' - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - compile "" - compileOnly "${portletApiDependency}" - compileOnly "${servletApiDependency}" - -} -``` - -Here is an example for customizing uPortal Groups: - -```gradle -description = "MyUniversity Custom Components for uPortal Security" - -apply plugin: 'java' -apply plugin: 'eclipse' - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - compile "org.jasig.portal:uPortal-groups-core:${uPortalVersion}" - compileOnly "${portletApiDependency}" - compileOnly "${servletApiDependency}" -} -``` -6. Add module to `settings.gradle` in root of repo. The entry will -be `include 'custom:'` similar to the other modules. -7. Add the module to `overlays/uPortal/build.gradle` or the appropriate -portlet, as needed. The entry will be a compile dependency like -`compile project(':custom:')` in a `dependencies` block. - -## CORS Security Whitelisting - -CORS (Cross-Origin Resource Sharing) Filter in uPortal restricts -POSTs from code originating from other servers. This restriction -can interfere with front-end services, such as CAS and Shibboleth. - -This can be mitigating by whitelisting services for the CORS Filter. -In uPortal.properties, add the services that can redirect to uPortal -in the following property: - -```properties -cors.allowed.origins=https://idp.myschool.edu, https://cas.myschool.edu -``` - -In the above example, two services are whitelisted. In an actual case, -only one of CAS or Shib would be in use. Also note that the protocol -must be specified. - -In the above example, two services are whitelisted. In an actual case, -only one of CAS or Shib would be in use. Also note that the protocol -must be specified. - -In the above example, two services are whitelisted. In an actual case, -only one of CAS or Shib would be in use. Also note that the protocol -must be specified. - -See: [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) diff --git a/docs/en/sysadmin/docker.md b/docs/en/sysadmin/docker.md deleted file mode 100644 index dc3c601e30..0000000000 --- a/docs/en/sysadmin/docker.md +++ /dev/null @@ -1,138 +0,0 @@ -# Docker - -## Benefits of Docker with uPortal - - - Includes all dependencies and tooling out of the box - - Capture known OS flavor and version - - JDK version explicitly rolled into image - - Transient dependencies locked - - Images are files that can be managed by Ops for updates/rollbacks - - Images are only about 1Gb - - Images are portable!! - -## uPortal Docker Tasks - - - dockerBuildImageCli - - Builds the Docker image used to invoke Import/Export tasks from within a container - - Copies in several files / directories from uPortal-start - - dockerBuildImageDemo - - Builds the uPortal Demo Docker image - - Runs hsqlStart and dataInit on startup - - dockerBuildImageWeb - - Builds the basic web server-only Docker image - - Only captures Tomcat, uPortal and portlet webapps - - dockerBuildImages - - All-in-one Gradle task for building all the Docker image - - Takes about 20 minutes on my laptop to build all 3 images - -## Building and Running uPortal Demo - -Here are the steps to setup uPortal Demo as a Docker image and then run it as a container. - -### Prerequisites - - - Docker installed for non-admin users - - Java 8 JDK installed and configured (e.g. JAVA_HOME set) - - uPortal-start repository present - -### Steps - - - Build and run uPortal to confirm it works as expected - - Stop HSQL and Tomcat, if they are running - - Create the Docker images from the repo - - `$ ./gradlew dockerBuildImageCli dockerBuildImageDemo` - - Confirm that the images were created in Docker - - `$ docker images` - - Run the image as a container with shell access - - `$ docker run -it -p 8080:8080 apereo/uportal-demo` - - Wait for the container to finish starting up Tomcat - - Point your browser at `http://localhost:8080/uPortal` - -## Using Docker in Deployments - -### Prerequisites for Servers - - - Docker installed for non-admin users - - Java 8 JDK installed and configured (e.g. JAVA_HOME set) - - uPortal user (e.g. `portal` and home directory (e.g. `/opt/uportal`) set up - - Have a naming convention for uPortal images - - Example uses "uportal" - "uPortal version" - "local revision" - - Developers should tag commits to mark deployments - -### Build uPortal Images - - - Build server set up to build uPortal - - Does not have to be a dedicated server - - Repository to capture versions of your local docker images - - This is often an Ops system rather than Git - - Build uPortal Web image - - `$ ./gradlew dockerBuildImageWeb` - - Export uPortal Web image - - `$ docker save -o uportal-v5.7.0-01.image apereo/uportal` - - Save image file to repository - - Copy image to servers, preferrable to uPortal user home directory - -### Setup on Servers - - - Create a log directory - - `$ sudo mkdir /opt/uportal/logs` - - `$ sudo chown portal /opt/uportal/logs` - - Create a configuration directory - - `$ sudo mkdir /opt/uportal/portal` - - `$ sudo chown portal /opt/uportal/portal` - - Copy/update configuration files for local server - - This is usually also managed with an Ops system - - At miminum, should have: - - `/opt/uportal/portal/global.properties` - - `/opt/uportal/portal/uPortal.properties` - -### Run uPortal Image on Servers - - - Import Docker Image - - `$ docker load -i uportal-v5.7.0-01.image` - - Run uPortal Docker Image - - `$ docker run --name uportal-v5.7.0-01 -d -v /opt/uportal/logs:/tomcat/logs -v /opt/uportal/portal:/tomcat/portal -p 8080:8080 -p 7800:7800 apereo/uportal` - - Confirm that logs are updating - - `$ ls -rtl /opt/uportal/logs` - -### Additional Ports - -Each institution and maybe even cluster may need additional port mappings. -Remember port mappings are only required to allow external traffic reach the docker container. -Calls from inside the container to external services, such as databases, do not require mappings. - -Here are some ports be aware of, including the defaults: - - - 8080 - default port for HTTP traffic - - 7800 - JGroups port for sharing some caches - - - 8009 - default AJP port for Apache/IIS when using this protocol - - Apache/IIS can be configured to use either HTTP or AJP protocols - - 8005 - Tomcat shutdown port - - 8443 - default HTTPS port - -Another potential set of ports to add would be for monitoring, such as JMX/JRE connections. - -## Known Issues - - - Demo image is broken when using a custom skin - - This does not affect Web images as they already contain binaries, rather than build from source - - Running the docker tasks to create images while HSQL is running breaks HSQL in container - - The lock files are copied when HSQL is running, causing a lock issue in the container - - On Linux, using Docker with pipes does not work - - Reconfigure Docker to use ports - -## Docker Intro - -[Docker Getting Started](https://docs.docker.com/get-started/) - - - -## Alternatives to Docker - -If Docker is not a technology of interest, there are alternatives that uPortal-start supports. uPortal-start has two gradle tasks that archive and compress Tomcat with all the uPortal and portlets apps deployed. - - - `./gradlew tomcatTar` - - Creates `tomcat-uportal.tgz` - - `./gradlew tomcatZip` - - Creates `tomcat-uportal.zip` diff --git a/docs/en/sysadmin/tomcat-env-vars.md b/docs/en/sysadmin/tomcat-env-vars.md deleted file mode 100644 index 9426e84f25..0000000000 --- a/docs/en/sysadmin/tomcat-env-vars.md +++ /dev/null @@ -1,88 +0,0 @@ -# Tomcat Configuration through Environment Variables - -uPortal supports loading external properties files to facilitate configuration -differences between _dev_, _test_, _production_, etc. This allows a single -Docker image or Tomcat zip to be used in all environments / clusters. - -Sometimes Tomcat configuration also needs to vary between evironments. -Examples are port numbers, SSL values, and load balancer IPs. - -In the following examples, we will make the HTTP port an external variable. - -## Update `setenv.sh`/`setenv.bat` to Load Config File - -First step is to update the `setenv` files to load the external configuration -file we will define, if it exists. - -The configuration file name is arbitrary, but we will likely use this name -in the future as support is included in `uPortal-start`. - -### `setenv.sh` Changes - -After `portal.home` is defined, include `catalina-opts.sh`: - -```sh -CATALINA_OPTS="$CATALINA_OPTS -Dportal.home=$PORTAL_HOME" - -# Source catalina.opts if it exists -[ -f "$PORTAL_HOME/catalina.opts" ] && . "$PORTAL_HOME/catalina.opts" - -``` - -### `setenv.bat` Changes - -After `portal.home` is defined, include `catalina-opts.bat`: - -```sh -:gotPortalHome -set CATALINA_OPTS=%CATALINA_OPTS% -Dportal.home=%PORTAL_HOME% - -if EXIST "%PORTAL_HOME%\catalina-opts.bat" call "%PORTAL_HOME%\catalina-opts.bat" -``` - -With these changes, an external script will be run from the `PORTAL_HOME` directory. -We leverage this to add variables to `CATALINA_OPTS` with `-D`. - -## Populate `catalina-opts` Files - -Next, we add variables to the external file that will be used in Tomcat -configuration files. In our example, we will define `http.port`. - -### `$PORTAL_HOME/catalina-opts.sh` - -```sh -CATALINA_OPTS="$CATALINA_OPTS -Dhttp.port=8081" -``` - -### `%PORTAL_HOME%\catalina-opts.bat` - -```sh -set CATALINA_OPTS="%CATALINA_OPTS% -Dhttp.port=8081" -``` - -## Use Variable in Tomcat Configuration - -Variables defined in `CATALINA_OPTS` with `-D` are now available in the Tomcat configuration files. -The notation is to use `${` + variable + `}`. - -### Example Setting HTTP Port Number - -Continuing with our examples, we can now set the HTTP port in `conf/server.xml`: - -```xml - -``` - -## Conclusion - -With this approach, there is still the issue of how to handle variables that are -expected in the external file but are missing. One approach is to add defaults -similar to how `PORTAL_HOME` is handled in the `setenv` files. Another approach -is to leave out defaults and have the system fail until they are added. diff --git a/docs/en/testing/perf/README.md b/docs/en/testing/perf/README.md deleted file mode 100644 index d10b2e74dc..0000000000 --- a/docs/en/testing/perf/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# Performance Testing - -Earlier uPortal performance testing [lessons learned](https://apereo.atlassian.net/wiki/spaces/UPM43/pages/103948792/uPortal+Load+Testing+Tips) - -The set of performance testing scripts provided in uPortal-start is meant to provide a baseline against the Quickstart data set (plus extra users). It is not intended to be an exhaustive coverage of functionality, and as with any test of this type, it is strongly recommended to NOT run this against your production install. - -One of the goals is to run this pre-release of a component (`uPortal`, `Announcements Portlet`, etc) and compare against the previous runs - -## Prepare - -1. Clone uPortal and setup the jwt signatures in `etc/portal/uPortal.properties` and `etc/portal/notifications.properties`. This allows the notifications API to be called. -2. Run: `{uP-start}$ ./gradlew clean portalInit`. -3. Configure test user generation with the `data.test.perf.*` configs in `build.properties`. -4. Generate test users: `{uP-start}$ ./gradlew perfGenTestData`. -5. Import the test users (Assuming you placed your perf user xml files in `data/perf`): `{uP-start}$ ./gradlew dataImport -Ddir="{uP-start}/data/perf"`. -6. Start the portal: `{uP-start}$ ./gradlew tomcatStart`. -7. Test a login from the generated population csv file. - -## Execute - -Various configurations for the have been exposed - see `baseline.properties.sample` for details. - -Current method is to run via a standalone JMeter: - -```sh -$ sh {jmeter-install}/bin/jmeter.sh -p buildSrc/src/test/perf/{myconfig}.properties -t buildSrc/src/test/perf/baseline.jmx -``` - -As a proof-of-concept, you can execute the baseline scripts via Gradle. The Gradle process is noted here as a possible CI hook for running perf tests at each commit / PR in the future. -```sh -$ ./gradlew jmRun -``` - -## Baseline Script - -Tests are run with a cache manager, but will clear the cache each iteration. - -1. Ramp up from 1 to `load.num.of.threads` users in `load.ramp.up` seconds -2. All users perform the list of modules / actions below -3. Between module requests, users will take a random length break (`delay.think.time.*`) -4. At the end of the loop, users will take a random length break (`delay.final.think.time.*`) -4. Test will run for each `load.loop.count` iterations or a duration of `scheduler.duration.seconds` - -### List of Baseline Modules - -* UI - Login -* API - Gather AuthToken -* API - People search -* API - GET notifications -* API - GET layout -* UI - View Announcements -* UI - View ESUP FM - Maximized - * UI - View ESUP FM - htmlFileTreeURL - * UI - View ESUP FM - fileChildrenURL - diff --git a/docs/en/tomcat/README.md b/docs/en/tomcat/README.md deleted file mode 100644 index 7664c0f6c9..0000000000 --- a/docs/en/tomcat/README.md +++ /dev/null @@ -1,219 +0,0 @@ -# Installing Tomcat - -:notebook: uPortal can automatically download and generate an appropriately configured Tomcat using `./gradle tomcatInstall`. - -Apache Tomcat is the recommended servlet container to use with uPortal. While uPortal requires a -Servlet 3.0-compatible servlet container and another servlet container may be used, most uPortal -implementers deploy to Apache Tomcat. Choosing Tomcat 8.x will likely allow uPortal adopters to get -the best advice from the community. - -See also - -+ [Fronting Tomcat with httpd](fronting-with-httpd.md) -+ [Using SSL](ssl-configuration.md) -+ [Debugging with JPDA](ssl-configuration.md) - -## Linux/Unix Installation - -### 1. Download - -[Download](http://tomcat.apache.org/download-80.cgi) Apache Tomcat 8.x. - -### 2. Extract - -Untar the package as follows: - -```shell_session -tar -zxvf apache-tomcat-8.0.33.tar.gz -``` - -### 3. Rename - -*Optionally* rename your install to something more meaningful: - -```shell_session -mv apache-tomcat-8.0.33 uportal-tomcat -``` - -### 4. Set environment variables - -Set your environment variables: - -```shell -export JAVA_HOME=/path/to/your/java -export TOMCAT_HOME=/path/to/your/tomcat -``` - -### 5.Test your Tomcat installation - -#### a. Start Tomcat - -First, start Tomcat - -```shell_session -$TOMCAT_HOME/bin/startup.sh -``` - -#### b. Verify in Browser - -Go to http://localhost:8080/ - -You should see the Apache Tomcat Welcome screen. - -#### c. Shut down Tomcat - -```shell_session -TOMCAT_HOME/bin/shutdown.sh -``` - -## Windows Installation - -### 1. Download - -Download [Apache Tomcat 8.x](http://tomcat.apache.org/download-80.cgi) for Windows. - -### 2. Unzip - -Unzip the download into a suitable directory. For example, you may unzip the file into the `C:\` directory. This will create a directory like `C:\apache-tomcat-8.x` containing your Tomcat files. - -### 3. Set environment variables - -You will need to define the `JAVA_HOME` environment variable. - -```shell -JAVA_HOME : C:\Program Files\Java\jdk1.x -``` - -For Windows (different versions may vary) you can create these environment variables by doing the following: right-click 'My Computer' select properties and then the Advanced tab. Then click Environment Variables and under System variables click New. From here, you can enter the name and value for `JAVA_HOME` if it's not already created. - -### 4. Start Tomcat - -Try starting up Tomcat by running the `C:\apache-tomcat-8.x\bin\startup.bat` batch file. - -### 5. Verify in Browser - -Point your browser to http://localhost:8080 and you should see the default Tomcat home page. - -### 6. Shut down Tomcat again - -To shutdown the server run `C:\apache-tomcat-8.x\bin\shutdown.bat` batch file. - -## Configuring Tomcat for uPortal - -### Shared Libraries - -uPortal places libraries in `CATALINA_BASE/shared/lib`. The default Tomcat 7 or 8 download does not enable libraries to be loaded from this directory. - -To resolve this you must edit `CATALINA_BASE/conf/catalina.properties` and change the line that begins `shared.loader=` to the following: - -```properties -shared.loader=${catalina.base}/shared/lib/*.jar -``` - -Be **absolutely certain** the `shared.loader` property is configured exactly as shown. An extra space character at the end of the line can prevent it from working as intended, which is very difficult to troubleshoot. - -### Shared Sessions - -Jasig portlets, as well as many other popular JSR-168 and JSR-286 portlets, rely on the ability to share user session data between the portal web application and portlet applications. - -To enable this feature for Tomcat 7 or 8, add the `sessionCookiePath="/"` to `CATALINA_BASE/conf/context.xml`. - - -```xml - -``` - -### Increase Resource Cache Size - -uPortal and the typical collection of portlets take a lot of space. Tomcat 8.5 issues warnings about running out of resource cache space. Add the following cache configuration just before the close of the Context node. - -```xml - - -``` - -### JVM Heap Configuration - -uPortal requires a larger than standard `PermGen` space (Java 7 only) and more heap than may be allocated by default. A good conservative set of heap settings are - -``` --XX:MaxPermSize=384m (Java 7 only) -Xmx2048m -``` - -To add these, create a file called either `setenv.sh` (Linux/Mac) or `setenv.bat` (Windows) in your Tomcat `bin` directory and add the configuration as follows. Note for production settings you would typically want more heap space, at least 4GB. See Additional Tomcat Configuration below. - -``` -JAVA_OPTS="$JAVA_OPTS -XX:+PrintCommandLineFlags -XX:MaxPermSize=384m -Xms1024m -Xmx2048m -Djsse.enableSNIExtension=false" -``` - -### Required file permissions - -Several uPortal webapps write to their deployed webapps folder to add dynamic content to the portal (altering the Respondr Dynamic Skin and managing Attachments uploaded to uPortal are two use cases). Insure the process Tomcat is running as has write access to `CATALINA_BASE/webapps/*` directories. Typically this is done by having the same account tomcat is running as be the same account you use to build and deploy uPortal. - - -### GZipping HTML - -(Optional but STRONGLY SUGGESTED unless doing it with Apache httpd or external appliance). - -Browser-side performance may be improved by GZip-ping downloaded content where appropriate. uPortal 4 already GZips some CSS and JavaScript. uPortal does not, however, GZip the uPortal page itself. - -GZipping of HTML content can be performed via Tomcat. To enable this functionality, set `compression="on"` in the in-use Tomcat connector, and optionally set the list of compressable mime types. More information about this feature can be found in the [Tomcat configuration page][]. - -```xml - -``` - -You can optionally specify compressionMinSize or leave it at it's default value of 2048 bytes. - -If you are [fronting Tomcat with Apache httpd](fronting-with-httpd.md) or other hardware systems, you may want to do the compression in Apache or those systems instead. - -### Tomcat 7/8 parallel startup - -(Optional.) - -Tomcat 7.0.23+ can be [configured to have multiple webapps start up in parallel][faster Tomcat startup wiki page], reducing server startup time. Set the `startStopThreads` attribute of a `Host` to a value greater than one. - -### HTTP Session Timeout - -To set the duration of HTTP sessions modify `CATALINA_BASE/conf/web.xml` and change the session-timeout element to the number of minutes desired. - -Tomcat's default is 30 minutes. - -```xml - - 30 - -``` - -### Further Tomcat Configurations - -#### JVM settings - -+ [Example JVM settings](https://wiki.jasig.org/display/UPC/JVM+Configurations) -+ [Heap tuning](https://wiki.jasig.org/display/UPC/uPortal+Heap+Tuning) - -#### Disabling SSLv3 - -(This bit is about *outgoing* SSL. [Documentation about incoming SSL configuration](ssl-configuration.md) is elsewhere.) - -Some sites have chosen to disable SSLv3 on their CAS server due to various vulnerabilities. That can cause problems with the CAS client used in uPortal being unable to establish an HTTPS connection to the CAS server to validate the service ticket and throwing an exception - -``` -javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure -``` - -One solution is to set the protocols used by Java when making SSL connections. You can do this by adding the following property to `JAVA_OPTS` (or `CATALINA_OPTS` if using that): - -Oracle Java7: `-Dhttps.protocols="TLSv1,TLSv1.1,TLSv1.2"` - -Your CAS server must be configured to use one of the mentioned protocols or the handshake will fail. If your test CAS server is publicly accessible, you can view which protocols it supports by [testing its domain name via SSL Labs](https://www.ssllabs.com/ssltest/). - -If you run into troubles: - -+ [Diagnosing TLS, SSL, and HTTPS](https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https) - -[Tomcat configuration page]: http://tomcat.apache.org/tomcat-7.0-doc/config/http.html -[faster Tomcat startup wiki page]: http://wiki.apache.org/tomcat/HowTo/FasterStartUp diff --git a/docs/en/tomcat/debugging-with-jpda.md b/docs/en/tomcat/debugging-with-jpda.md deleted file mode 100644 index 85828f53fe..0000000000 --- a/docs/en/tomcat/debugging-with-jpda.md +++ /dev/null @@ -1,8 +0,0 @@ -# Debugging with JPDA - -Tomcat has support for step through debugging through the Java Platform Debugger Architecture (JPDA). -To enable JPDA add a flag when starting tomcat. - -```sh -./gradlew tomcatStart -Pwith-jpda -``` diff --git a/docs/en/tomcat/fronting-with-httpd.md b/docs/en/tomcat/fronting-with-httpd.md deleted file mode 100644 index 5a6d828055..0000000000 --- a/docs/en/tomcat/fronting-with-httpd.md +++ /dev/null @@ -1,158 +0,0 @@ -# Fronting Tomcat with Apache httpd - -Optional. - -There are a plethora of reasons why you may need or desire to run Apache HTTP Server in front of uPortal. - -+ Your single sign on implementation requires use of an apache module (e.g. Shibboleth) -+ You wish to load balance multiple instances of Tomcat and don't have existing load balancing technology -+ You prefer to offload SSL to Apache HTTP Server - -## Step 1: Configuring Apache Tomcat - -In `/path/to/your/apache-tomcat/conf/server.xml` - -### Disable default Connector - -Comment out the default connector. - -```xml - -``` - -### Enable the AJP connector - -Uncomment the following connector block (You may adjust the port if you wish). - -```xml - - -``` - -It is important to consider a proper value for the `address` attribute in the AJP connector described above. If you don't specify the `address` attribute on a Connector, Tomcat will bind to the default value of `0.0.0.0`, which is a special address that translates to ALL bound IP addresses for the host. It is not uncommon to have multiple IP addresses bound to the host running your uPortal/Tomcat instance, and if you don't specify the specific IP address to listen on, you may open up the AJP connector unintentionally on one of those addresses. - -A good choice to use for the AJP connector is localhost, 127.0.0.1 as long as you run Apache on the same host you run Tomcat. If you run Apache and Tomcat on separate hosts, an ideal IP address to bind your AJP Connector is one that is on a private network or otherwise behind a firewall that would only allow the separate host running Apache to connect and forbid all others. - -## Step 2: Configuring Apache Http Server - -You will need to configure Apache to route requests to the AJP connector you configured in the previous part. You have two options, `mod_jk` and `mod_proxy_ajp`. - -`mod_proxy_ajp` is an extension of Apache mod_proxy that implements the AJP protocol. It is bundled with Apache httpd Server 2.2 and later and can be added to your server instance by adding the following options to your `configure` invocation: - -``` ---enable-proxy --enable-proxy-ajp -``` - -mod_proxy_ajp offers simple configuration, particularly if you are already familiar with mod_proxy. - -mod_jk is officially known as the Apache Tomcat Connector and is an apache module that must be [downloaded separately](http://tomcat.apache.org/connectors-doc/) and compiled against your Apache HTTP Server source. mod_jk has a slightly more complex configuration, but a different feature set than mod_proxy_ajp. - -### Option #1 mod_jk - -**Note:** Configuring with IIS use this link.... http://tomcat.apache.org/connectors-doc/reference/iis.html - -#### Download - -Download [the Apache Tomcat connector](http://tomcat.apache.org/connectors-doc/). - -#### httpd.conf - -Edit `/path/to/apache/config/httpd.conf`. - -##### LoadModule - -Locate the `LoadModule` section and make sure you have the `mod_jk` path defined (path may vary). - -``` -LoadModule jk_module "/usr/lib/httpd/modules/mod_jk.so" -``` - -#### IfModule - -Define the `IfModule` directive - -```apache - - JkWorkersFile "/path/to/apache/config/workers.properties" - JkLogFile "/path/to/apache/logs/mod_jk.log" - JkLogLevel debug - JkMount /*.jsp worker1 - JkMount /path/to/portal/* worker1 - -JkMountCopy All -``` - -#### workers.properties - -Configure the `workers.properties` file ( You may include the `workers.properties` file in the Apache config directory, but the path must match with the `httpd.conf` file where you defined the `JkWorkersFile` path above.) - -``` -#Below is an example of a workers.properties file. -# Define 1 real worker using ajp13 -worker.list=worker1 - -# Set properties for worker1 (ajp13) -worker.worker1.type=ajp13 -# Set host to match the same value you used above for the 'address' attribute for your AJP Connector -worker.worker1.host=127.0.0.1 -# Set the port to match the same value you used above for the 'port' attribute for your AJP Connector -worker.worker1.port=8009 - -# Below may vary as these are just examples of what can be included. -worker.worker1.lbfactor=50 -worker.worker1.cachesize=10 -worker.worker1.cache_timeout=600 -worker.worker1.socket_keepalive=1 -worker.worker1.socket_timeout=300 - -#Below is an example of a workers.properties file. -# Define 1 real worker using ajp13 -worker.list=worker1 - -# Set properties for worker1 (ajp13) -``` - - -### Option \#2 mod_proxy/mod_proxy_ajp - -After you have configured Tomcat in Step 1 you will now need to go to your Apache config directory to setup mod_proxy. - -```shell -cd /path/to/apache/config -``` - -Open httpd.conf for editing and uncomment the following modules. - -```shell -LoadModule proxy_module /usr/lib/apache2-prefork/mod_proxy.so -LoadModule proxy_ajp_module /usr/lib/apache2-prefork/mod_proxy_ajp.so -``` - -(File path to the `mod_proxy.so` and `mod_proxy_ajp.so` may vary). - -You may chose to keep `mod_proxy_ajp` configurations separate by creating a new file (i.e., `mod_proxy_ajp.conf`), but you will need to map this path in your `httpd.conf` file. - -```apache -Include /path/to/apache/stuff/mod_proxy_ajp.conf -``` - -Whether you place your `mod_proxy_ajp` configurations in a separate file or in the `httpd.conf` is entirely up to you, but you will need to include the following information. - -```shell -ProxyRequests Off - - Order deny,allow - Deny from all - Allow from localhost - -ProxyPass / ajp://127.0.0.1:8009/ retry=0 -ProxyPassReverse / ajp://127.0.0.1:8009/ retry=0 -``` - -The IP address and port number in the ProxyPass match the port you defined in the Tomcat AJP 1.3 Connector (Step 1). diff --git a/docs/en/tomcat/ssl-configuration.md b/docs/en/tomcat/ssl-configuration.md deleted file mode 100644 index e1afcfe1f5..0000000000 --- a/docs/en/tomcat/ssl-configuration.md +++ /dev/null @@ -1,118 +0,0 @@ -# SSL configuration - -The following document assumes that your Java Virtual Machine has already been successfully installed. - -The commands regarding creating the certificate keystore reference the `keytool` utility bundled with the Oracle JDK. - -+ [Keytool documentation for Windows](http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html) -+ [Keytool documentation for Solaris/Linux](http://download.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) - -## Step 1: Create a certificate keystore - -A certificate keystore is a single file that contains SSL private keys and certificates. Before you can configure Apache Tomcat to listen on https, you must create a certificate keystore that contains a private key and public certificate. Execute the following command: - -```shell -$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -``` - -+ You will be prompted for the "keystore password" which has a default value of `changeit`. -+ The next several prompts will be used to generate a self signed certificate for you brand new private key. If you are familiar with openssl, the fields are presented to you in reverse order: -+ What is your first and last name? (This corresponds to CN and should match the domain name your customers will use to access your uPortal instance, Example: yourhost.university.edu) -+ What is the name of your organizational unit? (OU, Example: Division of Information Technology) -+ What is the name of your organization? (O, Example: University of Somewhere) -+ What is the name of your City or Locality? (L, Example: Somewhere) -+ What is the name of your State or Province? (ST, Example: Wisconsin) -+ What is the two-letter country code for this unit? (C, Example: US) -+ You will be asked to confirm your choices, type `yes` and hit enter to accept. -+ `Enter key password for <tomcat>` is the next question, DO NOT type a password different than your keystore password. Tomcat has no support for keys within keystores that have different password values than the keystore itself. Simply hit enter to proceed. - -Your `cacerts` keystore now contains a private key and a self signed certificate. The `cacerts` files can be found inside your JVM install at the path: - -``` -$JAVA_HOME/jre/lib/security/cacerts -``` - -Before you publish this uPortal instance to your customers, it is strongly recommended that you get your certificate signed by an authority that is trusted by your customers` web browsers. - -In order to get your certificate signed, you will need to generate a Certificate Signing Request (CSR) for your new private key in the `cacerts` file. This can be done with the following command: - -``` -$JAVA_HOME/bin/keytool -certreq -alias tomcat -keyalg RSA -file tomcat.csr -``` - - -You will be prompted again for the keystore password (default is `changeit`). You'll find the CSR in the current working directory with the filename `tomcat.csr`. - -You are now ready to submit your CSR to your preferred Certificate Authority (CA). It may take time for the CA to respond, so you can proceed to step 2. When the CA responds, follow the instructions at the bottom of the page. - -## Step 2: Configure Tomcat to use SSL - -Go to your `server.xml` file and open the `server.xml` file for editing. The file should be located at `/path/to/tomcat/conf/server.xml`. - -```shell -cd /path/to/tomcat/conf -``` - -Comment out the following code block for port `8080` to disable plain text HTTP: - -```xml - -``` - -Uncomment the following code block to enable the HTTPS connector on port `8443`: - -```xml - - -``` - -Add the `address` attribute to the HTTPS connector: - -```xml - -``` - -It is important to consider a proper value for the `address` attribute in the HTTPS connector described above. If you do not specify the `address` attribute on a `Connector`, Tomcat will bind to the default value of `0.0.0.0`, which is a special address that translates to ALL bound IP addresses for the host. It is not uncommon to have multiple IP addresses bound to the host running your uPortal/Tomcat instance, and if you don`t specify the specific IP address to listen on, you may open up the HTTPS connector unintentionally on one of those addresses. - -Once you have saved your changes to `server.xml`, simply restart Tomcat: - -```shell -$TOMCAT_HOME/bin/shutdown.sh -$TOMCAT_HOME/bin/startup.sh -``` - -## Addendum: Importing the Signed Certificate - -Your CA has finally signed your certificate; store the certificate file somewhere on the file system and execute the following command: - -```shell -$JAVA_HOME/bin/keytool -import -alias tomcat -keyalg RSA -file /path/to/your/certificate_reply.crt -``` - -You will be prompted for the keystore password (default is `changeit`). - -You can verify that your certificate is signed by looking at the output of: - -``` -$JAVA_HOME/bin/keytool -list -alias tomcat -v -``` - -You should see the CA in the certificate chain. - -## Additional references - -+ [Tomcat SSL Howto](http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html) -+ [Apache httpd SSL documentation](http://httpd.apache.org/docs/2.2/ssl/) -+ [Apache httpd SSL FAQ](http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html) diff --git a/docs/fr/README.md b/docs/fr/README.md deleted file mode 100644 index 532b10cc2f..0000000000 --- a/docs/fr/README.md +++ /dev/null @@ -1,308 +0,0 @@ -![uPortal logo](../en/images/uPortal-logo.jpg) - -[![build status](https://github.com/uPortal-Project/uPortal-start/workflows/CI/badge.svg?branch=master)](https://github.com/uPortal-Project/uPortal-start/actions) - -## À propos d'uPortal-start - -uPortal-start est le mécanisme grâce auquel des individus ou des institutions adoptent et installent [Apereo uPortal][], -le framework open-source et leader en solution de portail d'entreprise, developpé par et pour l'enseignement supérieur, -les lycées et collèges et les communautés de Recherche. **uPortal-start est une nouveauté d'uPortal 5.0** - -uPortal-start va vous aider à gérer: - - - votre configuration d'uPortal - - votre Skin uPortal - - vos données dans uPortal - - et vos déploiements d'uPortal au travers d'outils en interface en ligne de commande (CLI) - -:warning: Attention uPortal-start fourni des données dans `data/quickstart` ainsi qu'une configuration -dans `etc/portal/` valable que pour un usage de démonstration, cette configuration n'est pas à utiliser -en production sans vérification préalable (se référer aux [Fichiers de données (en)](../en/data/README.md)) . - -## Sujets supplémentaires - -* [Configuration de Base de Données](database/README.md) -* [Configuration de Tomcat](tomcat/README.md) -* [Intégrations](integrations/README.md) -* [Fichiers de données (en)](../en/data/README.md) -* [Ajouter un contenu dans uPortal-start (en)](../en/content/README.md) - -### Prérequis - -Les logiciels suivants sont requis pour travailler avec uPortal-start : - - - un [Java Development Kit][] (JDK) - - un [Client Git][] approprié à votre OS - -Télécharger et installer la **dernière release JDK 8**. Assurez-vous que ce soit le JDK ; _un JRE n'est pas suffisant !_ - -:warning: _Utiliser toujours Git_ pour obtenir une copie d'uPortal-start. (Ignorez _svp_ l'option _Download ZIP_ -proposée par GitHub.) La communauté de développeurs d'uPortal font des améliorations à uPortal-start -chaque semaine : des nouvelles fonctionnalités, des fixes de bug, des améliorations de performance, des ajouts de documentation, _& cie_ -Il est extrêmement important de pouvoir mettre à jour votre copie locale de uPortal-start et (par conséquent) -de bénéficier de ces contributions. - -### Manuel uPortal 5.x - -Ce `README` fournit des informations de haut niveau sur le composant uPortal-start, ainsi que des exemples -d'exécution de nombreuses tâches courantes. Le manuel complet d'uPortal 5.x est hébergé dans les pages GitHUb. - - - [uPortal 5.x Manual (en)][] - - [Manuel uPortal 5.x (fr)][] - -autant que possible, **les exemples de ce `LISEZMOI` sont présentés dans l'ordre dans lequel vous allez -les exécuter** pour configurer un environnement de développement uPortal en local. - -## Utiliser uPortal-start - -uPortal-start fournit un système de build et plusieurs outils CLI via Gradle, et il est même livré -avec un _Wrapper Gradle_, donc vous n'avez pas besoin d'installer Gradle pour l'utiliser. - -Pour invoquer le Wrapper Gradle sur \*nix : - -```console - $ ./gradlew {taskname} [{taskname}...] -``` - -Pour invoquer le Wrapper Gradle sur Windows : - -```console - > gradlew.bat {taskname} [{taskname}...] -``` - -_NOTE : Pour des raison de simplicité, les exemples restants de ce document sont sur \*nix._ - -Vous pouvez afficher une liste complète des tâches Gradle - avec une brève description de ce qu'elles font - -en exécutant la commande suivante : - -```console - $ ./gradlew tasks -``` - -### Liste des Exemples : - - - [Comment tout configurer pour la première fois](#comment-tout-configurer-pour-la-première-fois) - - [Comment installer Tomcat](#comment-installer-tomcat) - - [Comment démarrer la base de données intégrée](#comment-démarrer-la-base-de-données-intégrée) - - [Comment déployer la technologie uPortal sur Tomcat](#comment-déployer-la-technologie-uportal-sur-tomcat) - - [Comment créer et initialiser le schéma de base de données](#comment-créer-et-initialiser-le-schéma-de-base-de-données) - - [Comment démarrer Tomcat](#comment-démarrer-tomcat) - - [Comment créer une Skin personnalisée](#comment-créer-une-skin-personnalisée) - - [Comment configurer votre déploiement](#comment-configurer-votre-déploiement) - -### Comment tout configurer pour la première fois - -Les exemples restants (ci-dessous) illustrent comment effectuer les tâches uPortal les plus courantes -individuellement; mais il y a un moyen facile de toutes les faire à la fois quand vous débutez. - -Utilisez la commande suivante pour configurer votre portail la première fois : - -```console - $ ./gradlew portalInit -``` - -Cette commande effectue les étapes suivantes : - - - Démarre l'instance HSQLDB intégrée (`hsqlStart`) - - Télécharge, installe et configure le conteneur de servlet Tomcat intégré (`tomcatInstall`) - - Déploie toutes les applications Web d'uPortal sur Tomcat (`tomcatDeploy`) - - Créé le schéma de base de données et importe à la fois les données basiques et personnalisées par implémentation (`dataInit`) - -:warning: Après cette commande, votre instance HSQLDB sera en cours d'exécution. C'est normalement une bonne chose, -mais n'oubliez pas de l'arrêter si vous en avez besoin. - -:notebook: D'autre part, votre serveur Tomcat _ne sera pas exécuté_ lorsque cette commande aura été -faite. N'oubliez pas de [suivre ces instructions](#comment-démarrer-tomcat) pour le démarrer. - -:notebook: Vous pouvez réexécuter cette commande plus tard si vous voulez "réinitialiser" votre environnement à un état propre. -C'est une bonne idée de **s'assurer que le conteneur Tomcat et l'instance HSQLDB ne fonctionnent pas** lorsque vous la lancez. - -### Comment installer Tomcat - -uPortal-start est pré-intégré avec le [conteneur de servlet Apache Tomcat][], qui est -un prérequis pour l'exécution de uPortal. De plus, plusieurs étapes de configuration de Tomcat doivent être effectuées -avant que l'application uPortal ne fonctionne correctement à l'intérieur de ce dernier. uPortal-start gère ces tâches -de configuration pour vous. - -Vous pouvez télécharger (depuis [Maven Central][]), installer, et configurer correctement un conteneur -Tomcat approprié en exécutant la commande suivante : - -```console - $ ./gradlew tomcatInstall -``` - -Vous pouvez réexécuter cette commande à tout moment pour réinitialiser votre conteneur Tomcat aux valeurs par défaut définies -par uPortal-start. - -### Comment démarrer la base de données intégrée - -uPortal-start est également pré-intégré avec un système de gestion de base de données relationnelle (SGBDR) appelé -[HSQLDB][]. Une instance de SGBDR prise en charge est une autre exigence de uPortal. Pour les déploiements d'uPortal sur serveurs, -vous pourrez choisir une plateforme de SGBDR différente: Oracle, MS SQL Server, -MySQL ou PostgreSQL. L'instance HSQLDB intégrée, cependant, est recommandée pour les environnements -de développement locaux de uPortal. - -Utilisez la commande suivante pour démarrer l'instance HSQLDB intégrée : - -```console - $ ./gradlew hsqlStart -``` - -:notebook: la base de données doit être en cours d'exécution à tout moment lorsque uPortal est en cours d'exécution et doit également être -exécutée chaque fois que plusieurs outils d'importation/exportation sont appelés. (Voir les exemples ci-dessous.) Il est -d'usage de laisser HSQLDB fonctionner toute la journée, ou tant que vous travaillez activement sur uPortal. - -Vous pouvez arrêter l'instance HSQLDB avec la commande suivante : - -```console - $ ./gradlew hsqlStop -``` - -Vous pouvez lancer l'application HSQLDB Manager avec la commande suivante : - -```console - $ ./gradlew hsqlOpen -``` - -### Comment déployer la technologie uPortal sur Tomcat - -Quand (Chaque fois que) vous exécutez la tâche `tomcatInstall`, le conteneur tomcat sera vidé. Vous devez -"builder" votre application uPortal et la déployer sur Tomcat avant de pouvoir la voir -fonctionner. - -Vous pouvez le faire avec la commande suivante : - -```console - $ ./gradlew tomcatDeploy -``` - -:notebook: vous devrez _exécuter cette commande_ à chaque fois que vous apportez des modifications -à tout ce qui se trouve dans le dossier `overlays`. - -Vous pouvez également exécuter cette commande pour un projet à la fois, par exemple ... - -```console - $ ./gradlew :overlays:Announcements:tomcatDeploy -``` - -C'est un excellent moyen de gagner du temps lorsque vous travaillez sur un sous-projet spécifique. - -### Comment créer et initialiser le schéma de base de données - -uPortal-start fournit plusieurs outils CLI (Interface en ligne de commande) qui vous permettent de gérer -la base de données du portail. La plus importante d'entre elles est la tâche `dataInit`. - -Utiliser la commande suivante pour créer le schéma de base de données et alimenter la avec les -_données de base du portail_ ainsi que le _jeu de données de votre propre implémentation_ : - -```console - $ ./gradlew dataInit -``` - -:warning: Cette commande permet également de supprimer si nécessaire le schéma de base de données existant (créé au préalable). -Probablement vous effectuerez cette tâche en production une seule fois (au début). -Dans le cas de déploiements hors production, toutefois, l'utilisation de `dataInit` pour une « réinitialisation -complète de la base de données » est assez courante. - -### Comment démarrer Tomcat - -Une fois que vous avez déployé la technologie uPortal, vous devez démarrer le serveur Tomcat avant de pouvoir -voir votre portail fonctionner. Vous pouvez le faire avec la commande suivante: - -```console - $ ./gradlew tomcatStart -``` - -:warning: Il est plus sûr d'exécuter les tâches Gradle dans uPortal-start _uniquement lorsque Tomcat n'est pas en cours d'exécution_. -Cette disposition s'applique aux tâches qui génèrent et déploient uPortal, ainsi qu'aux tâches qui -manipulent la base de données du portail. - -Vous pouvez arrêter le serveur Tomcat en utilisant cette commande : - -```console - $ ./gradlew tomcatStop -``` -### Premier lancement d'uPortal via uPortal-start - -En assumant que tous les paramètres par défaut sont conservés : -* L'URL d'accès à uPortal est : -* En utilisant les crédentials en exemple, vous pouvez bypasser CAS en test local. les logins / URL sont : - * admin: - * faculty: - * staff - * student - * guest -* L'installation par défaut de tomcat est : _uPortal-start/.gradle/tomcat_ -* Les logs pour debugger sont localisés dans : _uPortal-start/.gradle/tomcat/logs_ - -### Comment créer une Skin personnalisée - -uPortal-start fournit une tâche Gradle qui vous permet de démarrer correctement lorsque vous êtes prêt à -créer une Skin personnalisée. Utilisez cette commande pour générer une nouvelle Skin pour uPortal Respondr : - -```console - $ ./gradlew skinGenerate -DskinName={name} -``` -Vous _devez_ spécifier un nom pour votre Skin. Un nom de Skin valide contient entre 3 et 20 caractères alphanumériques. - -Vos fichiers de Skin seront placés dans `overlays/uPortal/src/main/webapp/media/skins/respondr`. Vous -pouvez ajuster de nombreux paramètres communs dans `variables.less`; utilisez `skin.less` pour définir les règles CSS (en -syntaxe LESS) qui surchargeront la CSS par défaut d'uPortal/Respondr. - -### Comment configurer votre déploiement - -uPortal contient de nombreux paramètres de configuration. (Reportez-vous au [Manuel uPortal 5.x (fr)][] pour un -guide complet de configuration.) Tous les paramètres ont des valeurs par défaut qui, pour la plupart, -ont été sélectionnées pour répondre aux besoins d'un environnement de développement local (comme le ceux -de ce `LISEZMOI` vous guide dans cette création). - -Vous pouvez _surcharger_ la valeur de la plupart des paramètres de configuration en utilisant un ou les deux fichiers de -configuration locaux suivants: - - - `uPortal.properties` - - `global.properties` - -Les deux fichiers sont facultatifs. `uPortal.properties` est pour les paramètres _uPortal seulement_, alors que -`global.properties` est pour les paramètres qui peuvent aussi être lus et utilisés par les _Modules d'uPortal_ (comme -les portlets). Les deux fichiers prennent en charge tous les mêmes paramètres. Si le même paramètre est défini dans -les deux fichiers, la valeur dans `uPortal.properties` "gagnera". - -Les deux fichiers (si vous les utilisez) doivent être placés dans le répertoire `portal.home`. L'emplacement par -défaut de `portal.home` est '`${catalina.base}`/portal', mais vous pouvez spécifier votre propre emplacement -en définissant une variable d'environnement `PORTAL_HOME`. - -Un exemple de fichier `uPortal.properties` - avec plusieurs paramètres couramment définis et -documentés - est disponible dans le répertoire `etc/portal` de ce projet. N'hésitez pas à personnaliser -cet exemple avec des valeurs spécifiques à votre institution dans votre fork de uPortal-start. - -### Création d'une image Docker - -:warning: Le support de Docker pour uPortal-start requiert Docker version 17.05 ou supérieur. - -uPortal-start fournit une prise en charge intégrée pour la création d'images Docker via son interface de ligne de commande (CLI). -Il sait comment créer trois images différentes (à trois fins différentes) : - - - `apereo/uportal` est la base, une image du serveur web seulement - - `apereo/uportal-cli` est l'image pour exécuter des commandes CLI à partir d'un conteneur (ex. : Import/Export) - - `apereo/uportal-demo` est une image qui inclut la base de données HSQL intégrée et convient pour évaluer uPortal - -Utiliser l'une des tâches Gradle suivantes pour créer l'image dont vous avez besoin : - -```console -./gradlew dockerBuildImageWeb // builds apereo/uportal -./gradlew dockerBuildImageCli // builds apereo/uportal-cli -./gradlew dockerBuildImageDemo // builds apereo/uportal-demo -./gradlew dockerBuildImages // builds all three images -``` - -Assurez-vous toujours que `tomcatInstall` et `tomcatDeploy` ont bien été exécutés et que leur sortie est -intacte avant d'appeler l'une des tâches `dockerBuildImage `. - -[Apereo uPortal]: https://www.apereo.org/projects/uportal -[uPortal 5.x Manual (en)]: https://uPortal-Project.github.io/uPortal -[Manuel uPortal 5.x (fr)]: https://uPortal-Project.github.io/uPortal/fr -[Java Development Kit]: http://www.oracle.com/technetwork/java/javase/downloads/index.html -[Client Git]: https://git-scm.com/downloads -[conteneur de servlet Apache Tomcat]: https://tomcat.apache.org/ -[Maven Central]: https://search.maven.org/ -[HSQLDB]: http://hsqldb.org/ \ No newline at end of file diff --git a/docs/fr/database/README.md b/docs/fr/database/README.md deleted file mode 100644 index 2a17735f59..0000000000 --- a/docs/fr/database/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# Configuration de la Base de Données - -uPortal est configuré pour utiliser une base de données HSQL par défaut. - -**Cette configuration de base de données ne convient pas aux déploiements de production mais est mieux adaptée à des fins de test.** - -uPortal prend en charge un certain nombre de bases de données de production populaires et vous pouvez configurer la base de données en suivant les exemples publiés sous Configuration de la base de données de production. - -## Étape 1 : Configurer la version du pilote de base de données - -Après avoir déterminé les coordonnées Maven du pilote, ouvrez le fichier `gradle.properties` et ajoutez les coordonnées de version du pilote en tant que valeur de propriété. - -Par exemple, la version du pilote MS SQL Server est configurée dans `mssqlJdbcVersion` ci-dessous: - -```groovy -jasyptVersion=1.9.2 -mssqlJdbcVersion=6.2.1.jre8 -personDirectoryVersion=1.8.5 -``` - -## Étape 2 : Ajouter la dépendance du pilote de base de données - -Ouvrir le fichier `overlays/build.gradle` et ajouter les coordonnées du pilote sous -les coordonnées hsqldb autour de la ligne 46. Assurez-vous d'utiliser la propriété version définie -à la première étape. - -À titre d'exemple, un pilote pour SQL Server est ajouté : - -```groovy - dependencies { - /* - * Add additional JDBC driver jars to the 'jdbc' configuration below; - * do not remove the hsqldb driver jar that is already listed. - */ - jdbc "org.hsqldb:hsqldb:${hsqldbVersion}" - jdbc "com.microsoft.sqlserver:mssql-jdbc:${mssqlJdbcVersion}" - - ... - } -``` - -## Étape 3 : Saisir quelques détails génériques - -Bien que les informations d'identification et l'URL de la base de données ne doivent pas être enregistrées dans votre référentiel, la classe de pilote (driver class), le dialecte (dialect) et la requête de validation (validation query) -peuvent généralement être conservés sans problèmes de sécurité. - -Dans `etc/portal/global.properties`, enregistrez les détails de la base de données qui sont cohérents entre les environnements: - -```groovy -environment.build.hibernate.connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver -environment.build.hibernate.connection.url=jdbc:sqlserver://localhost:1433; -environment.build.hibernate.connection.username=sa -environment.build.hibernate.connection.password= -environment.build.hibernate.dialect=org.hibernate.dialect.SQLServerDialect -environment.build.hibernate.connection.validationQuery=select 1 -``` - -## Étape 4 : Copier `global.properties` dans l'emplacement de l'environnement local et ajouter les informations d'identification et l'URL - -Dans uPortal 5, les déployeurs sont fortement encouragés à configurer un répertoire `portal.home` local pour conserver une configuration -spécifique à leur environnement mais qui ne devrait pas être saisie dans un repo. En particulier, la base de données et les autres -credentials de service ne doivent pas être saisis. Si `portal.home` n'est pas configuré, la valeur par défaut est le répertoire `portal/` dans Tomcat. - -Pendant le tâches `./gradlew portalInit` ou `./gradlew tomcatInstall`, les fichiers du répertoire `etc/portal/` du repo sont -copiés dans `portal.home`. L'une de ces deux tâches est une condition préalable à cette étape. - -Dans `global.properties` du répertoire `portal.home`, éditer les détails de connexion: - -```groovy -environment.build.hibernate.connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver -environment.build.hibernate.connection.url=[actual URL for this server] -environment.build.hibernate.connection.username=[actual user for this db] -environment.build.hibernate.connection.password=[actual password for this db] -environment.build.hibernate.dialect=org.hibernate.dialect.SQLServerDialect -environment.build.hibernate.connection.validationQuery=select 1 -``` - -## Étape 5: Configuration spécifique portlet / uPortal (optionel) - -La configuration utilisée par défaut pour déployer toutes les applications vient du fichier `global.properties` dans le répertoire `portal.home`. -Mais il est tout à fait possible de définir une configuration par application/portlet, le fichier `global.properties` sera toujours utilisé mais il peut être surchargé par un fichier spécifique s'il est trouvé. - -Pour la base de données uPortal il sera nécessaire de recopier les mêmes propriétés de base de données du fichier `global.properties` dans le fichier `uPortal.properties`. -Pour chaque portlet il faudra aussi redéfinir les mêmes propriétés en les ajoutant dans un fichier `specific-portlet.properties` du répertoire `portal.home`, où `specific-portlet.properties` est le nom du fichier défini dans les source de configurations de contexte spring du portlet. -Par exemple, pour `NewsReaderPortlet` le fichier sera `news-reader.properties`, le nom du fichier à définir se trouvera [dans le projet NewsReaderPortlet ici.](https://github.com/Jasig/NewsReaderPortlet/blob/master/src/main/resources/context/databaseContext.xml) - -Remarque: Aussi ces fichiers peuvent être utilisés pour définir d'autres propriétés ! - -## Configuration de la base de données de production uPortal - -Sélectionner la base de données ci-dessous pour des notes et des exemples de configuration. - -+ [DB2](db2.md) -+ [Hypersonic](hypersonic.md) -+ [Microsoft SQL Server](ms-sqlserver.md) -+ [MySQL](mysql.md) -+ [MariaDB](mariadb.md) -+ [Oracle RDBMS](oracle.md) -+ [PostgreSQL](postgresql.md) -+ [Sybase](sybase.md) \ No newline at end of file diff --git a/docs/fr/database/db2.md b/docs/fr/database/db2.md deleted file mode 100644 index 7d40031ea2..0000000000 --- a/docs/fr/database/db2.md +++ /dev/null @@ -1,119 +0,0 @@ -# Utiliser uPortal avec DB2 - -## Étape 1 : Obtenir le pilote - -Comme le pilote DB2 JDBC n'est pas disponible dans le référentiel Maven central, il doit être placé dans le référentiel local de chaque machine sur laquelle vous souhaitez construire uPortal. - -Comme alternative à cela, vous pouvez configurer un référentiel maven pour une utilisation par plusieurs machines. - -Un pilote JDBC DB2 est inclus dans le logiciel DB2 dans le sous-répertoire `java` après l'installation de DB2. Pour installer le fichier JAR dans votre référentiel maven local, utilisez la commande suivante: - -``` -mvn install:install-file -DgroupId=com.ibm.db2 -DartifactId=db2-jdbc -Dversion= -Dpackaging=jar -DgeneratePom=true -Dfile=db2java.zip.jar -``` - -Les options `groupId`, `artefactId` et `version` spécifiées dans cette commande dépendent de vous, mais elles doivent correspondre au fournisseur, au nom et à la version du fichier JAR pour éviter toute confusion ultérieure. - -## Étape 2 : Configurer le filtre de base de données - -Dans le dossier filters, localiser le fichier `local.properties` (par défaut dans `uPortal-4.1.x/filters/local.properties`) et configurer les paramètres de connexion à la base de données - -```shell -# HSQL Configuration -environment.build.hsql.port=8887 - -# Database Connection Settings -environment.build.hibernate.connection.driver_class=COM.ibm.db2.jdbc.app.DB2Driver -environment.build.hibernate.connection.url=jdbc:db2:uPortal3Db -environment.build.hibernate.connection.username=sa -environment.build.hibernate.connection.password= -environment.build.hibernate.dialect=org.hibernate.dialect.DB2Dialect -``` - -## Étape 3 : Ajouter le pilote de base de données - -Ouvrir le fichier `uportal-db/pom.xml`, décommenter le pilote db2 ci-dessous et modifier le si nécessaire. - -Ajouter les propriétés de version appropriées au fichier racine `pom.xml` ou entrer la version appropriée ci-dessous - -```xml - - - - org.hsqldb - hsqldb - ${hsqldb.version} - compile - - - - - - com.ibm.db2 - db2-jdbc - ${db2.version} - compile - - - - -``` - -## Étape 4 : Test de la configuration - -L'exécution de `ant dbtest` vous indiquera si vous avez correctement configuré la connexion à la base de données. - -```shell -ant dbtest -``` - -## Étape 5 : Build et Deploiement - -Après un test réussi, vous pouvez exécuter la commande ci-dessous pour créer les tables de la base de données et copier les fichiers dans votre conteneur de servlet. - -L'exécution de la commande `ant clean initportal` **supprimera et recréera les tables de la base de données et toutes les données existantes seront perdues**. Cela se traduira par une structure de base de données uPortal propre. Si vous souhaitez conserver le contenu de votre base de données existante, utilisez `ant clean deploy-war`. - -```shell -ant clean initportal -``` - -## Étape 6 : Redémarrer Tomcat - - - - -## Problèmes et bogues connus - -Certaines personnes ont rencontré des problèmes avec les pilotes de base de données avec certains environnements d'application Web si le fichier zip des classes est utilisé tel quel avec l'extension de fichier `.zip`. Le simple fait de renommer le fichier dans un fichier `.jar` semble résoudre le problème. Alternativement, décompresser le fichier de classes dans une structure de répertoire, puis utiliser la commande jar pour reconditionner les classes dans un fichier jar fonctionne également. diff --git a/docs/fr/database/hypersonic.md b/docs/fr/database/hypersonic.md deleted file mode 100644 index 5f282702bb..0000000000 --- a/docs/fr/database/hypersonic.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/fr/database/jndi-managed-datasources.md b/docs/fr/database/jndi-managed-datasources.md deleted file mode 100644 index 5f282702bb..0000000000 --- a/docs/fr/database/jndi-managed-datasources.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/fr/database/mariadb.md b/docs/fr/database/mariadb.md deleted file mode 100644 index e834fa869f..0000000000 --- a/docs/fr/database/mariadb.md +++ /dev/null @@ -1,100 +0,0 @@ -# Configuration avec une Base de Données MariaDB - -En exemple fonctionnel vous pouvez regarder les fichiers de configuration des test travis dans `uPortal-start/.travis/conf/database/mariadb/` - -## Étape 1 : Paramétrage du server MariaDB -Editer le fichier /etc/mysql/mariadb.conf.d/60-server.cnf. (ici pour Debian 9) -Dans la partie `[mysqld]` ajouter les éléments suivant : - -```properties -default-storage-engine=INNODB -lower_case_table_names=1 -innodb-large-prefix=1 -innodb_file_format=Barracuda -innodb_file_format_check=1 -innodb_file_format_max=Barracuda -innodb_file_per_table=1 -innodb_strict_mode=ON - -innodb_buffer_pool_size=2G -innodb_data_home_dir=/var/lib/mysql/ -innodb_data_file_path=ibdata1:100M:autoextend -innodb_flush_log_at_trx_commit=1 -innodb_log_file_size=256M -innodb_log_buffer_size=64M -``` - -**NOTE:** À partir de mariaDB 10.1.35 indiquer en plus la configuration suivante: -```properties -innodb_default_row_format=dynamic -``` -Cela aura pour effet de créer par défaut toutes les tables avec le row_format=dynamic s'il n'est pas indiqué. - -En complément vous pouvez indiquer ces propriétés afin de définir l'UTF-8 par défaut, cela est facultatif si vous créez votre base de données avec le jeu de caractères `uft8mb4` et la collation adequat (cf ci après). -```properties -character-set-server = utf8mb4 -collation-server = utf8mb4_unicode_520_ci -``` - -## Étape 2 : Configurer l'utilisateur et la base de donnée - -Se connecter au serveur de base de données. -```SQL -CREATE USER 'uportal'@'localhost' IDENTIFIED BY 'uportal'; -create database uportal CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; -GRANT ALL PRIVILEGES ON uportal.* TO 'portail'@'localhost'; -# If you want to install portlets on a specific database -# create database portlet CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci; -# GRANT ALL PRIVILEGES ON portlets.* TO 'portail'@'localhost'; -``` - -Avec MariaDB et MySQL le jeu de caractère par défaut doit être défini à `utf8mb4` au lieu de `utf8` car l'encodage UTF-8 de MySQL n'est qu'un support sur 3 octets (3-bytes) de l'encodage unicode. -La partie sur 3 octets n'est pas un support complet de l'UTF-8, cela ne supportera pas les caractères Asiatiques ainsi que les émoticones. [Regarder ici pour plus de détails](https://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html) - -Aussi la collation `utf8mb4_unicode_520_ci` est un nouvel et bon algorithme pour ordonner les données en UTF-8, mais vous pouvez tout aussi bien rester sur 'utf8_unicode_ci' [Regarder la documentation MySQL pour les détails](https://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html) - -## Étape 3 : Configurer Uportal - -### Éditer uPortal-start/gradle.properties -```properties -mysqldbVersion=5.1.45 -``` -### Éditer uPortal-start/overlays/build.gradle -```gradle -dependencies { - /* - * Add additional JDBC driver jars to the 'jdbc' configuration below; - * do not remove the hsqldb driver jar that is already listed. - */ - jdbc "org.hsqldb:hsqldb:${hsqldbVersion}" - jdbc "mysql:mysql-connector-java:${mysqldbVersion}" - -``` - -### Éditer uPortal-start/etc/portal/global.properties - -Dans la partie Database Connection -```properties -hibernate.connection.driver_class=com.mysql.jdbc.Driver -hibernate.connection.url=jdbc:mysql://localhost/portlets -hibernate.connection.username=uportal -hibernate.connection.password=uportal -hibernate.connection.validationQuery=select 1 -hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect -``` - -Vous devez copier/coller cette configuration pour chaque personnalisation d'accès à la base de données des contextes portlets / uPortal [cf configuration générale des bases de données](README.md#Étape-5-configuration-spécifique-portlet--uportal-optionel) - -**NOTE:** Avant mariaDB 10.1.35 il fallait utiliser le dialect `org.apereo.portal.utils.MySQL5InnoDBCompressedDialect` si vous n'aviez pas configuré votre serveur mariaDB avec le [row_format par défault ou équivalent](mariadb.md#Étape-1--paramétrage-du-server-mariadb). - -**NOTE:** Selon la version d'hibernate utilisée et la version du serveur de données il peut être nécessaire de sélectionner un Dialect adéquat [voici où chercher](https://github.com/hibernate/hibernate-orm/tree/main/hibernate-core/src/main/java/org/hibernate/dialect) (Attention à sélectionner la bonne version en fonction du tag) - - -## Étape 4 : Initialisation de la Base de Donnée -```shell -./gradlew dataInit -``` -## Étape 5 : Déploiement de uPortal -```shell -./gradlew tomcatDeploy -``` diff --git a/docs/fr/database/ms-sqlserver.md b/docs/fr/database/ms-sqlserver.md deleted file mode 100644 index 5f282702bb..0000000000 --- a/docs/fr/database/ms-sqlserver.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/fr/database/mysql.md b/docs/fr/database/mysql.md deleted file mode 100644 index 8b04b6f36d..0000000000 --- a/docs/fr/database/mysql.md +++ /dev/null @@ -1 +0,0 @@ -Tant que Mysql et MariaDB ont des configurations serveur similaires vous pouvez utiliser la configuration de [MariaDB](mariadb.md) ! \ No newline at end of file diff --git a/docs/fr/database/oracle.md b/docs/fr/database/oracle.md deleted file mode 100644 index 8aa293bf6d..0000000000 --- a/docs/fr/database/oracle.md +++ /dev/null @@ -1,44 +0,0 @@ -# Utilisation d'uPortal avec Oracle - -## Étape 1 : Obtenir le pilote - -Comme le pilote Oracle JDBC n'est pas disponible dans le référentiel central Maven, il doit être placé dans le référentiel local de chaque machine sur laquelle vous souhaitez construire uPortal. - -Comme alternative à cela, vous pouvez configurer un référentiel maven pour une utilisation par plusieurs machines. - -[Télécharger](http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html) le pilote Oracle JDBC correct pour votre serveur. Une fois que vous avez le jar, il doit être installé dans le référentiel Maven local en utilisant la commande suivante - -```shell -mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc -Dversion= -Dpackaging=jar -DgeneratePom=true -Dfile=ojdbc.jar -``` - -Les options `groupId`,` artefactId` et `version` spécifiées dans cette commande dépendent de vous, mais elles doivent correspondre au fournisseur, au nom et à la version du fichier JAR pour éviter toute confusion ultérieure. - -## Étape 2 : Configurer les propriétés de connexion de base de données - -Configurer les propriétés de connexion de base de données dans `etc/portal/global.properties` - -```properties -hibernate.connection.driver_class=oracle.jdbc.OracleDriver -hibernate.connection.url=jdbc:oracle:thin:@//oracle.example.edu:1521/instance -hibernate.connection.username= -hibernate.connection.password= -hibernate.connection.validationQuery=select 1 from dual -hibernate.dialect=org.hibernate.dialect.Oracle10gDialect -``` - -## Étape 3 : Ajouter le pilote de base de données - -Dans `overlays/build.gradle` ajouter la ligne suivante sous la ligne pour hsqldb - -```gradle -jdbc "com.oracle:ojdbc:${oracleJdbcVersion}" -``` - -`${oracleJdbcVersion}` peut être défini dans `gradle.properties`. Sinon, remplacez `${oracleJdbcVersion}` par le numéro de version utilisé à l'étape 1. - -## Étape 4 : Build et déploiement - -Vous pouvez exécuter la commande ci-dessous pour créer les tables de base de données et copier les fichiers dans votre conteneur de servlet. - -L'exécution de la commande `./gradlew portalInit` :warning: va **supprimer et recréer les tables de la base de données et toutes les données existantes seront perdues** :warning:. Cela se traduira par une structure de base de données uPortal propre. Si vous souhaitez conserver le contenu de votre base de données existante, utilisez `./gradlew tomcatDeploy`. diff --git a/docs/fr/database/postgresql.md b/docs/fr/database/postgresql.md deleted file mode 100644 index 5f282702bb..0000000000 --- a/docs/fr/database/postgresql.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/fr/database/sybase.md b/docs/fr/database/sybase.md deleted file mode 100644 index 5f282702bb..0000000000 --- a/docs/fr/database/sybase.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/fr/frontend/README.md b/docs/fr/frontend/README.md deleted file mode 100644 index fd4ba3a51c..0000000000 --- a/docs/fr/frontend/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Implementation front end Implementation / Personalisation -uPortal offre des possibilités flexibles pour personnaliser l'aspect et la convivialité de l'expérience utilisateur. - -## Sujets - -* [Skin uPortal](SKIN_UPORTAL.md) -* [Configurer le pipeline de rendu d'uPortal](RENDERING_PIPELINE.md) -* [Usage d'Angular](USING_ANGULAR_fr.md) diff --git a/docs/fr/frontend/RENDERING_PIPELINE.md b/docs/fr/frontend/RENDERING_PIPELINE.md deleted file mode 100644 index 1d8ab72643..0000000000 --- a/docs/fr/frontend/RENDERING_PIPELINE.md +++ /dev/null @@ -1,190 +0,0 @@ -# Configuration du pipeline de rendu d'uPortal - -uPortal implémente le rendu complet de pages en utilisant un _pipeline_: une structure imbriquée d'éléments discrets, -pluggables, qui implémentent chacun la même interface Java. Le mot "pipeline" est approprié -parce qu'il invoque les concepts de _mouvement_ et de _flux_, mais dans le logiciel, cette conception est également -connu sous le nom [Decorator pattern][]. - -L'interface Java au centre du pipeline de rendu uPortal est `IPortalRenderingPipeline`. -Les instances de `IPortalRenderingPipeline` sont des beans gérés par Spring. Le bean primaire du pipline du rendu -reçoit un identifiant (dans Spring) de `portalRenderingPipeline`. Les composants d'autres parties du -portail (en dehors du pipeline de rendu) utilisent ce bean (exclusivement) pour interagir avec le rendu dans -le portail. - -L'interface `IPortalRenderingPipeline` ne définit qu'une seule méthode : - -``` java -public void renderState(HttpServletRequest req, HttpServletResponse res) - throws ServletException, IOException; -``` - -## Pipeline Standard uPortal - -Le pipeline de rendu "standard" est celui qui vient avec uPortal prêt à l'emploi: par défaut, -uPortal 5 utilise la même configuration de pipeline de rendu que uPortal 4.3 - basée sur une instance de -`DynamicRenderingPipeline` qui contient un nombre de _composants_. - -Les composants de `DynamicRenderingPipeline` implémentent chacun une interface unique: -`CharacterPipelineComponent`, qui lui-même étend -`PipelineComponent `. (Le pipeline de rendu standard est relié à XML / XSLT.) -Chaque composant implémente une étape discrète dans le rendu d'une demande de page. - -Le pipeline standard comprend (à ce jour) les composants suivants (étapes): - -1. `analyticsIncorporationComponent` -2. `portletRenderingIncorporationComponent` -3. `portletRenderingInitiationCharacterComponent` -4. `themeCachingComponent` -5. `postSerializerLogger` -6. `staxSerializingComponent` -7. `postThemeTransformLogger` -8. `themeTransformComponent` -9. `preThemeTransformLogger` -10. `themeAttributeIncorporationComponent` -11. `portletRenderingInitiationComponent` -12. `structureCachingComponent` -13. `postStructureTransformLogger` -14. `structureTransformComponent` -15. `preStructureTransformLogger` -16. `structureAttributeIncorporationComponent` -17. `portletWindowAttributeIncorporationComponent` -18. `dashboardWindowStateSettingsStAXComponent` -19. `postUserLayoutStoreLogger` -20. `userLayoutStoreComponent` - -L'ordre de traitement pour ces composants de pipeline est essentiellement _rétroactif_: du bas vers le haut. - -## Utiliser les Beans `RenderingPipelineBranchPoint` - -Les intégrateurs d'uPortal peuvent configurer le pipeline de rendu en fonction de leur besoin. La plupart des cas d'utilisation -peuvent être satifaits en utilisant les Beans `RenderingPipelineBranchPoint`. les *Rendering branchpoints* sont des -Object Java (Beans gérés par Spring) qui indiquent à quelques (ou toutes les) requêtes HTTP de suivre un chemin different. -Les _Rendering branch points_ (points de branchement de rendu) suivent la stratégie de configuration uPortal 5 standard pour des Beans gérés par Spring : -si vous fournissez un Bean correctement configuré du type correct (_viz._ -`RenderingPipelineBranchPoint`) au contexte d'application Spring, uPortal le _découvrira_ et -_l'appliquera_. (uPortal le fournira comme une dépendance aux composants qui sauront quoi -faire avec.) - -uPortal évalue les Beans `RenderingPipelineBranchPoint`, si présent, dans un ordre spécifique. Si une -branche indique qu'elle _doit_ être suivie, il _va_ la suivre et aucune autre branche ne sera -testée. Si aucune branche n'est suivie, le pipeline de rendu standart sera utilisé. - -Le Beans `RenderingPipelineBranchPoint` acceptent les paramètres de configuration suivant : - -| Propriétés | Type | Requis ? | Notes | -| -------- | ---- |:---------:| ----- | -| `order` | `int` | N° | Définit la séquence des points de branchement lorsqu'il y en a plusieurs (dans ce cas, `order` est requis). Les branches avec des valeurs d'ordre inférieures viennent avant les valeurs plus élevées. | -| `predicate` | `java.util.function.Predicate` | O | Si le `predicate` renvoie `true`, la branch sera suivie; sinon la branche suivante sera testée. | -| `alternatePipe` | `IPortalRenderingPipeline` | O | Le chemin de rendu qui sera suivi si le `predicate` renvoie` true`.. | - -### Exemples - -Les exemples suivants illustrent certaines utilisations typiques des beans `RenderingPipelineBranchPoint`. Chacuns -de ces exemples peuvent être configurés dans - -`uPortal-start/overlays/uPortal/src/main/resources/properties/contextOverrides/overridesContext.xml`. - -#### Exemple 1: Rediriger les utilisateurs non authentifiés vers CAS/Shibboleth - -Cet exemple illustre une fonctionnalité couramment demandée: interdire l'accès non authentifié au -portail. - -``` xml - - - - - - - - - - -``` - -#### Exemple 2: Intégration de uPortal-home - -Cet exemple illustre la configuration requise du Pipeline de rendu uPortal pour l'intégration avec -[uPortal-home][]. - -``` xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -[Decorator pattern]: https://en.wikipedia.org/wiki/Decorator_pattern -[uPortal-home]: https://github.com/uPortal-Project/uportal-home diff --git a/docs/fr/frontend/SKIN_UPORTAL.md b/docs/fr/frontend/SKIN_UPORTAL.md deleted file mode 100644 index 4a06c76db6..0000000000 --- a/docs/fr/frontend/SKIN_UPORTAL.md +++ /dev/null @@ -1,97 +0,0 @@ -# Skin uPortal - -## Table des matières - -1. [Créer une Skin](#créer-une-skin) -2. [Configuration du Skin](#configuration-du-skin) -3. [Notes additionnelles](#notes-additionnelles) - 1. [Dynamic Respondr Skin](#dynamic-respondr-skin) - 2. [Effets de Page](#effets-de-page) - -## Créer une Skin - -1. Commencer par le dossier racine du code source uPortal -2. Accéder au dossier *uportal-war/src/main/webapp/media/skins* -3. Copier le dossier *defaultSkin/* et attribuez-lui un nom spécifique à votre institution (par exemple *wolverine/*) -4. Copier le fichier *defaultSkin.less* et attribuez-lui le même nom (par exemple, *wolverine.less*) -5. Modifier les imports dans le fichier de Skin pour pointer vers le dossier de skin. par exemple. *wolverine.less* - - ``` less - /** DO NOT REMOVE OR ALTER THESE INCLUDES **/ - @import "defaultSkin/less/variables.less"; - @import "common/common.less"; - /*******************************************/ - - @import "wolverine/less/variables.less"; - @import "wolverine/less/skin.less"; - ``` - -6. Accéder au dossier *uportal-war/src/main/webapp/media/skins/respondr* -7. Éditer *skinList.xml* pour pointer les noms `` et `` vers le nouveau nom de skin. Par exemple. - - ``` xml - - wolverine - wolverine - - Basic skin for the Respondr theme based on Twitter Bootstrap and Responsive Design - - - ``` - -8. Accéder au dossier *uportal-war/src/main/data/default_entities/portlet-definition* -9. Éditer *dynamic-respondr-skin.portlet-definition.xml* et ajouter une `` avec un `` de `PREFdynamicSkinName` et une `` avec le nom de la Skin. Par exemple. - - ``` xml - - PREFdynamicSkinName - wolverine - - ``` - -10. Accéder au dossier *uportal-war/src/main/data/required_entities/stylesheet-descriptor* -11. Éditer *Respondr.stylesheet-descriptor.xml* et changer la `` pour le nom de la Skin. Par exemple. - - ``` xml - - skin - wolverine - PERSISTENT - Skin name - - ``` - -12. Lancer `ant initdb` pour appliquer ces changements en base. -13. Lancer `ant clean deploy-war` pour lancer un Build du portail avec la nouvelle Skin. -14. **Ne pas oublier d'ajouter la Skin à Git!** - -## Configuration du Skin - -uPortal utilise des [variables Less](http://lesscss.org/features/#variables-feature) pour gérer les changements globaux de Skin. -Des Changements peuvent être fait pour surcharger les [variables Bootstrap](/uportal-war/src/main/webapp/media/skins/respondr/common/bootstrap/variables.less) ou les [variables uPortal](/uportal-war/src/main/webapp/media/skins/respondr/defaultSkin/less/variables.less), les changements devraient surtout être fait au niveau du fichier `variable.less`. - -## Notes additionnelles - -### Dynamic Respondr Skin - -Les variables de `@color` 1-6 sont des valeurs personnalisables via la portlet dynamic respondr skin. - -``` less -@color1 -@color2 -@color3 -@color4 -@color5 -@color6 -``` - -![Dynamic Respondr Skin Portlet Page](../../../images/dynamic-respondr-skin.png) - -### Effets de Page - -La couleur de fond et l'image de fond du portail peuvent recevoir des effets spéciaux. -Modifier `@portal-page-body-background-image-filter` permet toutes les combinaisons possible de [filtres css](https://developer.mozilla.org/en-US/docs/Web/CSS/filter) d'être appliqué. - -![Effet sans background](../../../images/background-filter-none.png) - -![Effet Sepia](../../../images/background-filter-sepia.png) diff --git a/docs/fr/frontend/USING_ANGULAR_fr.md b/docs/fr/frontend/USING_ANGULAR_fr.md deleted file mode 100644 index 692696edca..0000000000 --- a/docs/fr/frontend/USING_ANGULAR_fr.md +++ /dev/null @@ -1,257 +0,0 @@ -# Stratégie pour utiliser Angular.js (1.xx) dans les skins et/ou les portlets du portail. - -## Définitions - -Les mots clés "DOIT OBLIGATOIREMENT", "NE DOIT SURTOUT PAS", "OBLIGATOIRE", "DOIT", "NE DOIT PAS", "DEVRAIT", -"NE DEVRAIT PAS", "RECOMMANDÉ", "POURRAIT", et "FACULTATIF" dans ce document doivent être -interprété comme décrit dans RFC 2119. - -## Abstract - -AngularJS est devenu un framework très populaire pour le développement côté client. En raison de la façon dont Angular interdit le "bootstrapping" imbriqué de -modules, un soin particulier doit obligatoirement être requis pour s'assurer que plusieurs programmes Angular ne rentrent -pas en conflit, ce qui dégraderait l'usage, indépendamment de la façon dont la skin ou -les fragments de page sont combinés. - -Ce document présente une stratégie dans laquelle uPortal et/ou des portlets peuvent utiliser Angular et coexister sans conflit. - -Concrètement cela signifie que: - -- Angular peut être utilisé dans les Skins d'uPortal -- Les portlets Angular peuvent être utilisées, même à plusieurs sur la même page sans conflit -- Les portlets Angular peuvent être utilisées dans une Skin d'un portail Angular sans conflit - -## Skins/Portail - -- On DOIT activer les portlets Angular en effectuant l'une des opérations suivantes: - - Vérifier dans le contenu de la portlet, le commentaire de la "directive" - ``, et s'il est trouvé, utilisez le service de $compile sur les noeuds DOM. - - Utilisez le service `$compile` pour compiler les nœuds DOM de toutes les portlets chargées. - - En supplément cela à l'avantage de permettre au portail d'appliquer des directives à des contenus standard de portlets existants si vous le souhaitez. - -- On DOIT Obligatoirement créer une directive globale window.up.ngApp qui va exposer les fonctions Angular `$controllerProvider.register` (avec un nom de contrôleur), `$provide.service`, `$provide.factory`, `$provide.value`, et `$compileProvider.directive`. Voir le code directement ci-dessous en exemple. - -```javascript -angular.module('foo').config(function getLazyLoaders($compileProvider, -$controllerProvider, $provide) { - //Register controller helper - window.up.ngApp.controller = function(name, ctrl) { - $controllerProvider.register(name, ctrl); - return window.up.ngApp; - }; - - //Register $provide helpers - ['service', 'factory', 'value'].forEach(function(t) { - window.up.ngApp[t] = function(name, thing) { - $provide[t](name, thing); - return window.up.ngApp; - }; - }); - - //Register directive helper - window.up.ngApp.directive = function(name, dirFactory) { - $compileProvider.directive(name, dirFactory); - return window.up.ngApp; - }; -``` - -## Les Portlets - -- DOIVENT OBLIGATOIREMENT vérifier l'existence d'Angular de deux manières. - - Sur l'objet `fenêtre` global (`window.angular`) - - En tant que balise script non encore chargée avec l'identifiant 'uportal-Angular-script'. -- NE DOIVENT SURTOUT PAS utiliser la directive ng-app ou tenter de s'amorcer en dehors de leurs limites/cadre. -- DOIVENT être écrites de façon la plus portable possible et devraient fonctionner correctement avec n'importe quelle version d'Angular 1.x, puisque la version précise d'Angular sera inconnue pour la plupart des implémentations. -- DOIVENT avoir un namespace dans leurs noms de module en cas de "bootstrapping", comme recommandé dans [JavaScript Best - Practices](https://wiki.jasig.org/display/UPM41/JavaScript+Best+Practices) -- DEVRAIENT utiliser la directive ``comme indicateur au portail de ne pas compiler (avec $compile) tout le contenu de toutes les portlets. - -### Comportement pour les contrôles Angular - -- Si Angular est trouvé, (e.g. `window.Angular === undefined`, or `typeof Angular === 'undefined'`) les portlets DOIVENT chercher le lazy-loader window.up.ngApp et, s'il est trouvé, utiliser the lazy-loader pour enregistrer ses composants. -- Si Angular est trouvé, et le lazy-loader n'est pas trouvé, alors le portlet DEVRAIT assumer qu'un autre portlet utilise Angular, et procéder à enregistrer son propre  module, et DOIT utiliser Angular.bootstrap pour se joindre elle-même itself au fragment. Pour un exemple, voir la fonction bootstrap() dans le [code ci-dessous](#boilerplate-portal-code). -- Si Angular n'est pas trouvé mais un élément de script existant avec id 'uportal-Angular-script' est trouvé, le portlet NE DOIT PAS créer un nouvel élément script, mais attacher plutôt son gestionnaire d'événements à la balise de script existante. -- Si Angular n'est pas trouvé sur la portée globale, le portlet DOIT créer une balise script DOM avec id 'uportal-Angular-script', et attacher au dit élément DOM un event handler 'load' pour s'amorcer, ou utiliser `$(window).load` pour le faire. - -### Fichiers de script externes - -- Les Fichiers de script externes : - - DOIVENT créer en toute sécurité un objet `window.up.ngBootstrap` pour enregistrer leur fonctions d'amorçage. - - DOIVENT comporter une fonction `bootstrap` qui prendra en paramètre une instance d'id comme une chaîne `string`. - - DOIVENT vérifier l'existence des lazy loaders `up.ngApp` et les utiliser pour s'enregistrer si ils sont disponibles. - -- Les fichiers JSP : - - DOIVENT attendre que tous les scripts soient chargés (e.g. - `$(window).load` , et alors après seulement appeler la dite function d'amorçage en lui passant son instance d'id. - - DOIVENT toujours vérifier l'existence d'Angular, et ajouter la balise de script si nécessaire. - -### Boilerplate Portal Code - -- [Aussi disponible](https://github.com/andrewstuart/generator-ng-portlet) comme générateur - [yeoman](http://yeoman.io) pour plus de commodité. - - -#### Script Inline - -```jsp -<%@ page contentType="text/html" isELIgnored="false" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0" %> - - - - - - - - - - - - - -
-

Awesome Things

-
    -
  • {{$index + 1}}. {{thing}}
  • -
-
-``` - -### Scripts externes - -```jsp -<%@ page contentType="text/html" isELIgnored="false" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0" %> - - - - - - - - - - - - - - -
-

Awesome Things

-
    -
  • {{$index + 1}}. {{thing}}
  • -
-
-``` - -```javascript -(function(window, _) { - 'use strict'; - - if (window.up.ngApp) { - //If loaded, register right away. - register(window.up.ngApp); - } else { - //Otherwise, let jsp call your bootstrapper once Angular is loaded. - window.up = window.up || {}; - window.up.ngBootstrap = window.up.ngBootstrap || {}; - - window.up.ngBootstrap.test = function(n) { - var app = angular.module(n + '-test', []); - register(app); - - var bootEle = document.getElementById(n + '-test'); - angular.bootstrap(bootEle, [n + '-test']); - } - } - - - function register(app) { - app.controller('testController', function($scope) { - $scope.awesomeThings = ['AngularJS', 'Bower', 'Grunt', 'Yeoman', 'uPortal', 'Open Source!']; - }); - } -})(window, up.underscore); -``` - -## Administrateurs - -- Les administrateurs DEVRAIENT être avertis que toutes les portlets qu'ils ajoutent à leur portail devraient être vérifiées dans un environnement sûr pour s'assurer de leur fonctionnalité et leur compatibilité diff --git a/docs/fr/integrations/README.md b/docs/fr/integrations/README.md deleted file mode 100644 index 73f1425752..0000000000 --- a/docs/fr/integrations/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Intégrations - -uPortal, comme de nombreuses applications Web qui aggrègent des services, -fait face à des défis avec l'intégration. Ici, nous collectons des solutions -à partager avec les intégrateurs. - -## La liste blanche de sécurité CORS - -Le filtre CORS (Cross-Origin Resource Sharing) dans uPortal restreint -les POST provenant de code provenant d'autres serveurs. Cette restriction -peut interférer avec les services frontaux, tels que CAS et Shibboleth. - -Cela peut être atténué par les services de liste blanche pour le filtre CORS. -Dans `uPortal.properties`, ajoutez les services pouvant être redirigés vers uPortal -dans la propriété suivante : - -```properties -cors.allowed.origins=https://idp.myschool.edu, https://cas.myschool.edu -``` - -Dans l'exemple ci-dessus, deux services sont ajoutés à la liste blanche. Dans un cas réel, -un seul CAS ou Shib serait utilisé. Notez également que le protocole -doit être spécifié. - -Voir : [CORS](https://developer.mozilla.org/fr/docs/Web/HTTP/Access_control_CORS) diff --git a/docs/fr/tomcat/README.md b/docs/fr/tomcat/README.md deleted file mode 100644 index c31e1a2bda..0000000000 --- a/docs/fr/tomcat/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# Installation de Tomcat - -Apache Tomcat est le conteneur de servlet recommandé à utiliser avec uPortal. Alors que uPortal requiert -un conteneur de servlet compatible avec Servlet 3.0, aussi un autre conteneur servlet peut être utilisé, -mais la plupart des implémenteurs d'uPortal le déploient sur Apache Tomcat. Choisir Tomcat 8.x permettra probablement -aux utilisateurs d'obtenir les meilleurs conseils de la communauté. - -Voir aussi - -+ [Mettre Httpd en front de Tomcat](fronting-with-httpd.md) -+ [Utiliser SSL](ssl-configuration.md) - -## Installation Linux/Unix - -### 1. Téléchargement - -[Télécharger](http://tomcat.apache.org/download-80.cgi) Apache Tomcat 8.x. - -### 2. Extraction - -Extraire le package comme suit : - -```shell_session -tar -zxvf apache-tomcat-8.0.33.tar.gz -``` - -### 3. Renommer - -*Optionnellement* renommer votre installation en quelquechose de plus signifiant : - -```shell_session -mv apache-tomcat-8.0.33 uportal-tomcat -``` - -### 4. Modifier vos variables d'environnement - -Modifier vos variables d'environnement : - -```shell -export JAVA_HOME=/path/to/your/java -export TOMCAT_HOME=/path/to/your/tomcat -``` - -### 5.Tester votre installation de Tomcat - -#### a. Démarrer Tomcat - -Premièrement, démarrer Tomcat - -```shell_session -$TOMCAT_HOME/bin/startup.sh -``` - -#### b. Vérifier dans un navigateur - -Aller sur http://localhost:8080/ - -Vous devriez voir la page d'accueil de Apache Tomcat. - -#### c. Fermer Tomcat - -```shell_session -TOMCAT_HOME/bin/shutdown.sh -``` - -## Installation sur Windows - -### 1. Téléchargement - -Télécharger [Apache Tomcat 8.x](http://tomcat.apache.org/download-80.cgi) pour Windows. - -### 2. Désarchiver - -Désarchiver le téléchargement dans un répertoire adéquat. Par exemple, vous pouvez extraire le fichier dans le répertoire `C:\`. Ceci va créer un répertoire du type `C:\apache-tomcat-8.x` contenant tous les fichiers de Tomcat. - -### 3. Modifier vos variables d'environnement - -Vous devez définir une variable d'environnement `JAVA_HOME`. - -```shell -JAVA_HOME : C:\Program Files\Java\jdk1.x -``` -Pour Windows (cela peut varier selon les versions), vous pouvez créer ces variables d'environnement en procédant comme suit: -cliquer avec le bouton droit sur 'Poste de travail', sélectionnez dans propriétés l'onglet Avancé. -Puis cliquer sur Variables d'environnement et sous Variables système, cliquer sur Nouveau. -À partir d'ici, entrer le nom et la valeur de `JAVA_HOME` s'il n'est pas déjà créé. - -### 4. Démarrer Tomcat - -Essayez de démarrer Tomcat en exécutant le fichier de commandes `C:\apache-tomcat-8.x\bin\startup.bat`. - -### 5. Vérifier dans un navigateur - -Aller dans votre navigateur sur http://localhost:8080 et vous devriez voir la page d'accueil Tomcat par défaut. - -### 6. Fermer Tomcat - -Pour arrêter le serveur, exécutez le fichier de commandes `C:\apache-tomcat-8.x\bin\shutdown.bat`. - -## Configuration de Tomcat pour uPortal - -### Bibliothèques partagées - -uPortal place les bibliothèques dans `CATALINA_BASE/shared/lib`. Par défaut, Tomcat 7 ou 8 n'autorise pas le chargement des bibliothèques à partir de ce répertoire. - -Pour résoudre ce problème, vous devez éditer `CATALINA_BASE/conf/catalina.properties` et changer la ligne commençant par `shared.loader=`par ce qui suit : - -```properties -shared.loader=${catalina.base}/shared/lib/*.jar -``` - -Soyez **absolument certain** que la propriété `shared.loader` est configurée exactement comme indiqué. Un caractère espace supplémentaire à la fin de la ligne peut l'empêcher de fonctionner comme prévu, ce qui est très difficile à résoudre. - -### Sessions partagées - -Les portlets Jasig, ainsi que de nombreux autres portlets JSR-168 et JSR-286, reposent sur la possibilité de partager des données de session utilisateur entre l'application Web du portail et les applications de portlet. - -Pour activer cette fonctionnalité pour Tomcat 7 ou 8, ajoutez `sessionCookiePath="/"` à `CATALINA_BASE/conf/context.xml`. - -```xml - -``` - -### Augmenter la taille du cache de ressources - -uPortal et la collection typique de ses portlets prennent beaucoup de place. Tomcat 8.5 émet des avertissements sur l'épuisement de l'espace de cache des ressources. Ajoutez la configuration de cache suivante juste avant la _fermeture_ du noeud `Context`. - -```xml - - -``` - -### Configuration Heap JVM - -uPortal requiert un espace `PermGen` plus grand que la norme (Java 7 uniquement) et plus de segments de mémoire que ceux alloués par défaut. Un bon ensemble de paramètres de Heap est - -``` --XX:MaxPermSize=384m (Java 7 only) -Xmx2048m -``` - -Pour les ajouter, créer un fichier appelé `setenv.sh` (Linux / Mac) ou `setenv.bat` (Windows) dans votre répertoire `bin` de Tomcat et ajouter la configuration suivante. Note pour les paramètres de production, vous avez besoin généralement de plus d'espace de mémoire, au moins 4 Go. Voir la configuration Tomcat additionnelle ci-dessous. - -``` -JAVA_OPTS="$JAVA_OPTS -XX:+PrintCommandLineFlags -XX:MaxPermSize=384m -Xms1024m -Xmx2048m -Djsse.enableSNIExtension=false" -``` - -### Autorisations requises de fichier - -Plusieurs applications web d'uPortal écrivent dans leur dossier webapps -déployé- pour ajouter un contenu dynamique au portail (la modification de la Skin dynamique Respondr et la gestion des pièces jointes téléchargées sur uPortal sont deux cas d'utilisation). Assurez-vous que le processus Tomcat est en cours d'exécution tout comme l'accès en écriture aux répertoires `CATALINA_BASE/webapps/*`. Généralement, cela se fait en ayant le même compte tomcat en cours d'exécution que le compte que vous utilisez pour construire et déployer uPortal. - - -### HTML GZip-ping - -(Facultatif mais FORTEMENT SUGGÉRÉ à moins de le faire avec Apache httpd ou un appareil externe). - -Les performances côté navigateur peuvent être améliorées par GZip-ping du contenu téléchargé le cas échéant. uPortal 4 "GZippe" déjà quelques CSS et JavaScript. uPortal ne fait cependant pas le GZip-ping de la page HTML d'uPortal en elle-même. - -Le GZipping du contenu HTML peut être effectué via Tomcat. Pour activer cette fonctionnalité, définissez `compression="on"` dans le connecteur Tomcat utilisé, et définissez éventuellement la liste des types MIME compressibles. Vous trouverez plus d'informations sur cette fonctionnalité dans la [page de configuration Tomcat][]. - -```xml - -``` - -Vous pouvez éventuellement spécifier `compressionMinSize` ou le laisser à sa valeur par défaut de 2048 octets. - -Si vous avez [Apache httpd en front de Tomcat](fronting-with-httpd.md) ou d'autres systèmes matériels, vous pouvez effectuer la compression dans Apache ou dans ces systèmes à la place. - -### Démarrage parallèle de Tomcat 7/8 - -(Facultatif.) - -Tomcat 7.0.23+ peut être [configuré pour démarrer en parallèle plusieurs webapps au démarrage][faster Tomcat startup wiki page], reduisant ainsi le temp de démarrage du serveur. Modifier l'attribut `startStopThreads` d'un `Host` avec une valeur supérieur à 1. - -### Délai de session HTTP - -Pour définir la durée des sessions HTTP, modifier `CATALINA_BASE/conf/web.xml` et remplacer l'élément session-timeout par le nombre de minutes souhaité. - -La valeur par défaut de Tomcat est de 30 minutes. - -```xml - - 30 - -``` - -### Autres configurations de Tomcat - -#### paramétrages JVM - -+ [Exemple de paramètrage JVM](https://wiki.jasig.org/display/UPC/JVM+Configurations) -+ [Heap tuning](https://wiki.jasig.org/display/UPC/uPortal+Heap+Tuning) - -#### Désactiver SSLv3 - -(Ceci est un peu à propos du SSL sortant. La [Documentation sur la configuration SSL entrante](ssl-configuration.md) est sur une autre page.) - -Certains sites ont choisi de désactiver SSLv3 sur leur serveur CAS en raison de diverses vulnérabilités. Cela peut provoquer des problèmes avec le client CAS utilisé dans uPortal, celui-ci n'étant pas en mesure d'établir une connexion HTTPS avec le serveur CAS pour valider le ticket de service et lance donc une exception. - -``` -javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure -``` -Une solution consiste à définir les protocoles utilisés par Java lors de la création de connexions SSL. Vous pouvez le faire en ajoutant la propriété suivante à `JAVA_OPTS` (ou `CATALINA_OPTS` si vous l'utilisez) : - -Oracle Java7: `-Dhttps.protocols="TLSv1,TLSv1.1,TLSv1.2"` - -Votre serveur CAS doit être configuré pour utiliser l'un des protocoles mentionnés ou l'établissement de liaison (handshake) échouera. Si votre serveur CAS de test est accessible au public, vous pouvez voir les protocoles qu'il prend en charge en [testant son nom de domaine via SSL Labs](https://www.ssllabs.com/ssltest/). - -Si vous rencontrez des problèmes : - -+ [Diagnostiquer TLS, SSL, et HTTPS](https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https) - -[page de configuration Tomcat]: http://tomcat.apache.org/tomcat-7.0-doc/config/http.html -[faster Tomcat startup wiki page]: http://wiki.apache.org/tomcat/HowTo/FasterStartUp diff --git a/docs/fr/tomcat/fronting-with-httpd.md b/docs/fr/tomcat/fronting-with-httpd.md deleted file mode 100644 index 7f1aadb50c..0000000000 --- a/docs/fr/tomcat/fronting-with-httpd.md +++ /dev/null @@ -1,158 +0,0 @@ -# Mettre Httpd en front de Tomcat - -Optionnel. - -Il y a pléthore de raisons pour lesquelles vous pourriez avoir besoin ou envie d'exécuter Apache HTTP Server en front de uPortal. - -+ Votre implémentation de Single Sign On nécessite l'utilisation d'un module Apache (par exemple Shibboleth) -+ Vous souhaitez équilibrer la charge de plusieurs instances de Tomcat et n'avez pas de technologie d'équilibrage de charge existante -+ Vous préférez décharger le SSL sur le serveur HTTP Apache - -## Étape 1: Configuration d'Apache Tomcat - -Dans `/path/to/your/apache-tomcat/conf/server.xml` - -### Désactiver le connecteur par défaut - -Commentez le connecteur par défaut. - -```xml - -``` - -### Activer le connecteur AJP - -Décommentez le bloc de connecteur suivant (vous pouvez ajuster le port si vous le souhaitez). - -```xml - - -``` - -Il est important de considérer une valeur correcte pour l'attribut `address` dans le connecteur AJP décrit ci-dessus. Si vous ne spécifiez pas l'attribut `address` sur un connecteur, Tomcat se reliera à la valeur par défaut `0.0.0.0`, qui est une adresse spéciale qui se translate à TOUTES les adresses IP liées de l'hôte. Il n'est pas rare d'avoir plusieurs adresses IP liées à l'hôte s'exécutant sur votre instance uPortal/Tomcat, et si vous ne spécifiez pas l'adresse IP spécifique à écouter, vous pouvez ouvrir involontairement le connecteur AJP sur l'une de ces adresses. - -Un bon choix à utiliser pour le connecteur AJP est localhost, 127.0.0.1 tant que vous exécutez Apache sur le même hôte que Tomcat. Si vous exécutez Apache et Tomcat sur des hôtes distincts, une adresse IP idéale pour relier votre connecteur AJP est celle qui se trouve sur un réseau privé ou derrière un pare-feu qui permettrait uniquement à l'hôte exécutant Apache de se connecter et d'interdire toutes les autres. - -## Étape 2: Configuration du serveur Apache Http - -Vous devrez configurer Apache pour router les demandes vers le connecteur AJP que vous avez configuré dans la partie précédente. Vous avez deux options, `mod_jk` et `mod_proxy_ajp`. - -`mod_proxy_ajp` est une extension d'Apache mod_proxy qui implémente le protocole AJP. Il est livré avec Apache httpd Server 2.2 et ses versions ultérieures et peut être ajouté à votre instance de serveur en ajoutant les options suivantes à votre invocation `configure`: - -``` ---enable-proxy --enable-proxy-ajp -``` - -mod_proxy_ajp offre une configuration simple, en particulier, si vous êtes familier avec mod_proxy. - -mod_jk est officiellement connu sous le nom de Apache Tomcat Connector et est un module Apache qui doit être [téléchargé séparément](http://tomcat.apache.org/connectors-doc/) et compilé avec votre source Apache Serveur HTTP. mod_jk a une configuration légèrement plus complexe, mais un ensemble différent de fonctionnalités de mod_proxy_ajp. - -### Option \#1 mod_jk - -**Note:** Pour une configuration avec IIS, utiliser ce lien... http://tomcat.apache.org/connectors-doc/reference/iis.html - -#### Téléchargement - -Télécharger [Apache Tomcat connector](http://tomcat.apache.org/connectors-doc/). - -#### httpd.conf - -Éditer `/path/to/apache/config/httpd.conf`. - -##### LoadModule - -Rechercher la section `LoadModule` et assurez-vous que le chemin `mod_jk` est défini (le chemin peut varier). - -``` -LoadModule jk_module "/usr/lib/httpd/modules/mod_jk.so" -``` - -#### IfModule - -Définir la directive `IfModule` - -```apache - - JkWorkersFile "/path/to/apache/config/workers.properties" - JkLogFile "/path/to/apache/logs/mod_jk.log" - JkLogLevel debug - JkMount /*.jsp worker1 - JkMount /path/to/portal/* worker1 - -JkMountCopy All -``` - -#### workers.properties - -Configurer le fichier `workers.properties` (Vous pouvez inclure le fichier `workers.properties` dans le répertoire de configuration Apache, mais le chemin doit correspondre au fichier `httpd.conf` où vous avez défini le chemin de `JkWorkersFile`, voir ci-dessus.) - -``` -#Below is an example of a workers.properties file. -# Define 1 real worker using ajp13 -worker.list=worker1 - -# Set properties for worker1 (ajp13) -worker.worker1.type=ajp13 -# Set host to match the same value you used above for the 'address' attribute for your AJP Connector -worker.worker1.host=127.0.0.1 -# Set the port to match the same value you used above for the 'port' attribute for your AJP Connector -worker.worker1.port=8009 - -# Below may vary as these are just examples of what can be included. -worker.worker1.lbfactor=50 -worker.worker1.cachesize=10 -worker.worker1.cache_timeout=600 -worker.worker1.socket_keepalive=1 -worker.worker1.socket_timeout=300 - -#Below is an example of a workers.properties file. -# Define 1 real worker using ajp13 -worker.list=worker1 - -# Set properties for worker1 (ajp13) -``` - - -### Option \#2 mod_proxy/mod_proxy_ajp - -Après avoir configuré Tomcat à l'étape 1, vous devez maintenant aller dans votre répertoire de configuration Apache pour installer mod_proxy. - -```shell -cd /path/to/apache/config -``` - -Ouvrir httpd.conf pour éditer et décommenter les modules suivants. - -```shell -LoadModule proxy_module /usr/lib/apache2-prefork/mod_proxy.so -LoadModule proxy_ajp_module /usr/lib/apache2-prefork/mod_proxy_ajp.so -``` - -(le chemin des fichier `mod_proxy.so` et `mod_proxy_ajp.so` peuvent varier). - -Vous pouvez choisir de séparer les configurations de `mod_proxy_ajp` en créant un nouveau fichier (par exemple, `mod_proxy_ajp.conf`), mais vous devrez mapper ce chemin dans votre fichier `httpd.conf`. - -```apache -Include /path/to/apache/stuff/mod_proxy_ajp.conf -``` - -Si vous placez vos configurations `mod_proxy_ajp` dans un fichier séparé ou dans le `httpd.conf`, cela dépend entièrement de vous, mais vous devrez inclure les informations suivantes. - -```shell -ProxyRequests Off - - Order deny,allow - Deny from all - Allow from localhost - -ProxyPass / ajp://127.0.0.1:8009/ retry=0 -ProxyPassReverse / ajp://127.0.0.1:8009/ retry=0 -``` - -L'adresse IP et le numéro de port dans le ProxyPass doivent correspondre au port que vous avez défini dans le Connecteur Tomcat AJP 1.3 (Étape 1). diff --git a/docs/fr/tomcat/ssl-configuration.md b/docs/fr/tomcat/ssl-configuration.md deleted file mode 100644 index 96b08bd222..0000000000 --- a/docs/fr/tomcat/ssl-configuration.md +++ /dev/null @@ -1,116 +0,0 @@ -# Configuration SSL - -Le document suivant suppose que votre machine virtuelle Java a déjà été installée avec succès. - -Les commandes concernant la création du fichier de clés de certificat font référence à l'utilitaire `keytool` fourni avec Oracle JDK. - -+ [Keytool documentation for Windows](http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html) -+ [Keytool documentation for Solaris/Linux](http://download.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) - -## Étape 1: Créer un fichier de clés de certificat - -Un fichier de clés de certificat est un fichier unique contenant des clés privées et des certificats SSL. Avant de pouvoir configurer Apache Tomcat pour qu'il écoute sur https, vous devez créer un fichier de clés de certificat contenant une clé privée et un certificat public. Exécuter la commande suivante: - -```shell -$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -``` - -+ Vous serez invité à entrer le "mot de passe du keystore" qui a la valeur par défaut `changeit`. -+ Les prochaines invites de commandes seront utilisées pour générer un certificat auto-signé pour votre nouvelle clé privée. Si vous êtes familier avec openssl, les champs vous sont présentés dans l'ordre inverse: -+ Quel est votre nom et prénom? (Cela correspond à CN et doit correspondre au nom de domaine que vos clients utiliseront pour accéder à votre instance uPortal. Exemple : yourhost.university.edu) -+ Quel est le nom de votre unité organisationnelle? (OU, Exemple : Direction des systèmes d'information ) -+ Quel est le nom de votre organisation? (O, Exemple : Université de quelquepart ) -+ Quel est le nom de votre ville ou localité? (L, Exemple : Quelque part) -+ Quel est le nom de votre état ou province? (ST, exemple : Toulouse) -+ Quel est le code de pays à deux lettres pour cette unité? (C, Exemple : FR) -+ Il vous sera demandé de confirmer vos choix, tapez `yes` et appuyez sur Entrée pour accepter. -+ `Entrer le mot de passe pour <tomcat >` est la question suivante, NE taper PAS un mot de passe différent de celui de votre keystore. Tomcat ne prend pas en charge les clés dans les fichiers de clés qui ont des valeurs de mot de passe différentes de celles du fichier de clés lui-même. Appuyez simplement sur Entrée pour continuer. - -Votre fichier de clés `cacerts` contient maintenant une clé privée et un certificat auto-signé. Les fichiers `cacerts` peuvent être trouvés dans votre installation JVM sur le chemin: - -``` -$JAVA_HOME/jre/lib/security/cacerts -``` -Avant de publier cette instance uPortal auprès de vos clients, il est fortement recommandé de faire signer votre certificat par une autorité reconnue par les `navigateurs Web` de vos clients. - -Pour que votre certificat soit signé, vous devez générer une demande de signature de certificat (CSR) pour votre nouvelle clé privée dans le fichier `cacerts`. Cela peut être fait avec la commande suivante: - -``` -$JAVA_HOME/bin/keytool -certreq -alias tomcat -keyalg RSA -file tomcat.csr -``` - -Le mot de passe du keystore vous sera à nouveau demandé (par défaut `changeit`). Vous trouverez le CSR dans le répertoire de travail actuel avec le nom de fichier `tomcat.csr`. - -Vous êtes maintenant prêt à soumettre votre demande de signature de certificat à votre autorité de certification (AC) préférée. L'AC peut mettre du temps à répondre, vous pouvez donc passer à l'étape 2. Lorsque l'AC répond, suivez les instructions au bas de la page. - -## Étape 2: Configuration de Tomcat pour utiliser SSL - -Ouvrir le fichier `server.xml` et éditer le. Ce fichier doit se trouver dans `/path/to/tomcat/conf/server.xml`. - -```shell -cd /path/to/tomcat/conf -``` - -Commenter le bloc de code suivant pour le port `8080` pour désactiver le plain text HTTP: - -```xml - -``` - -Décommenter le bloc de code suivant pour activer le connecteur HTTPS sur le port `8443` : - -```xml - - -``` - -Ajouter l'attribut `address` au connecteur HTTPS: - -```xml - -``` - -Il est important de considérer une valeur correcte pour l'attribut `address` dans le connecteur HTTPS décrit ci-dessus. Si vous ne spécifiez pas l'attribut `address` sur un` Connector`, Tomcat se reliera à la valeur par défaut `0.0.0.0`, qui est une adresse spéciale qui se transforme en TOUTES les adresses IP liées à l'hôte. Il n'est pas rare d'avoir plusieurs adresses IP liées à l'hôte exécutant votre instance uPortal/Tomcat, et si vous ne spécifiez pas l'adresse IP spécifique à écouter, vous pouvez ouvrir involontairement le connecteur HTTPS sur l'une de ces adresses. - -Une fois que vous avez sauvegardé vos modifications dans `server.xml`, redémarrer simplement Tomcat : - -```shell -$TOMCAT_HOME/bin/shutdown.sh -$TOMCAT_HOME/bin/startup.sh -``` - -## Addendum: Importation du certificat signé - -Votre autorité de certification a finalement signé votre certificat. Stocker le fichier de certificat quelque part sur le système de fichiers et exécuter la commande suivante : - -```shell -$JAVA_HOME/bin/keytool -import -alias tomcat -keyalg RSA -file /path/to/your/certificate_reply.crt -``` - -Le mot de passe du keystore vous sera demandé (par défaut `changeit`). - -Vous pouvez vérifier que votre certificat est signé en regardant la sortie de : - -``` -$JAVA_HOME/bin/keytool -list -alias tomcat -v -``` - -Vous devriez voir l'autorité de certification dans la chaîne de certificats. - -## Références supplémentaires - -+ [Tomcat SSL Howto](http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html) -+ [Apache httpd SSL documentation](http://httpd.apache.org/docs/2.2/ssl/) -+ [Apache httpd SSL FAQ](http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html)