Date: | Author: | Version: | Changes: | Completed | Ext. | Int. | Is in Core | Jira Ref. |
---|---|---|---|---|---|---|---|---|
05 April 2016 | tpl | 0.1 | Doc. created | No | x |
| N/A |
|
14 April 2016 | Anders GranauHøfft | 0.2 | Sections expanded | No | x | N/A | CDRRM-733 | |
11 May 2016 | Emil Ifrim | 0.3 | Database configuration | No | x | N/A | ||
20 March 2017 | Emil Ifrim | 0.4 | Redesign Update | No | x | N/A | ||
01 April 2018 | Emil Ifrim | 0.5 | Redesign Update | No | x | N/A |
Overview
This is a brief guide on how to install the REST service (rator-rest-api project and rator-rest-api-auth project). A customer rest project involves deploying three artifacts:
...
Auth REST-api pom example
...
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.cdrator.projects.customer_project</groupId> <artifactId>customer_project-rest-parent</artifactId> <version>3.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>customer_project-rest-api-auth</artifactId> <packaging>war</packaging> <name>customer_project REST API Auth</name> <description>customer_project REST API Auth</description> <dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>customer_project-billing</artifactId> <!-- or rator-billing if there is no customization in the billing layer of the customer project--> <version>${project.version}</version> <scope>runtime</scope> <exclusions> <exclusion> <groupId>org.apache.bval</groupId> <artifactId>bval-jsr303</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.cdrator.rest</groupId> <artifactId>rator-rest-api-auth</artifactId> <classifier>webapp</classifier> <type>war</type> <scope>runtime</scope> </dependency> <dependency> <groupId>com.cdrator.rest</groupId> <artifactId>rator-rest-api-auth</artifactId> <scope>runtime</scope> </dependency> </dependencies> <build> <finalName>customer_project-rest-api-auth</finalName> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <outputDirectory>${basedir}/../../../target</outputDirectory> <excludes>log4j.properties</excludes> <!-- Exclude JCL and LOG4J since all logging should go through SLF4J. Note that we're excluding log4j-<version>.jar but keeping log4j-over-slf4j-<version>.jar --> <packagingExcludes> WEB-INF/log4j.properties, WEB-INF/lib/javax.el-api-2.2.4.jar </packagingExcludes> </configuration> </plugin> <plugin> <groupId>com.cdrator.maven.plugins</groupId> <artifactId>rator-maven-renamer-plugin</artifactId> </plugin> </plugins> </build> </project> |
...
Info |
---|
Make sure to use Apache Tomcat version 7.X.X as version 8 and above does not respect class path order (on which CDRator's code rely on)the Rator code relies). |
Installation
Info |
---|
If you are developing from Eclipse, and deploying to a local Tomcat installation, Eclipse automatically handles build and deployment. See fx the tomcatTomcat-section of this guide. |
Info |
---|
This section describes installation of the core services. For a customer setup, an additional war has to be deployed (the one containing the customized REST services) |
- Retrieve the
rator-rest-api
.war file (either from Jenkins/Nexus, see Resources, or by building the .war yourself, see Build). - Retrieve the
rator-rest-api-auth
.war file (either from Jenkins/Nexus, see Resources, or by building the .war yourself, see Build). - Copy the war files to the Tomcat webapps directory and (re-)start the Tomcat application.
- Retrieve the swagger-ui
dist
folder (either from Github, or from our own repositories, see Resources. Or by building the project yourself, see Build). - Copy the dist folder to the Tomcat
webapps
directory and (re-)start the Tomcat application. You probably want to rename thedist
folder toswagger-ui
.- Nb This can be a different Tomcat installation than in step 2, or the same.
- In your browser, enter the URL "http://<Swagger server and port>/<base-path>/?url=http://<REST server and port>/<base-path>/api/swagger.json".
- You should now see a list of the resources available on the REST server.
In order to access secure resources through swagger-ui, one additional parameter must be configured in the Properties.txt file:
Code Block language sql title oauth2 selfcare client rest.api.accessTokenUri=http://<host>:<port/<auth-app-context>/oauth/token #example: http://10.45.1.81:8081/rator-rest-api-auth/oauth/token
...
Compatibility matrix | |
rator-rest-api | Swagger UI |
---|---|
1.0 | 2.1.1 |
3.0.1-SNAPSHOT | 3.20.0 |
Database
...
Setup
- Run table_changes.sql
Configure REST api clients - who is allowed to get security tokens in order to access resources that require authentication/authorization. Here are some examples:
Code Block language sql title oauth2 selfcare client Insert into OAUTH_CLIENT_DETAILS (CLIENT_ID, CLIENT_SECRET, SCOPE, AUTHORIZED_GRANT_TYPES, ACCESS_TOKEN_VALIDITY, REFRESH_TOKEN_VALIDITY, AUTHORITIES) Values ('rator-selfcare-web-app', 'ratorselfcare', 'read,write', 'password', 600, 0, 'ACCESS_BRAND_brandKey'); --replace brandKey with a valid brand in the setup
Note: Swagger-ui client should only be used in development environments!
Code Block title oauth2 swagger-ui client Insert into OAUTH_CLIENT_DETAILS (CLIENT_ID, CLIENT_SECRET, SCOPE, AUTHORIZED_GRANT_TYPES, ACCESS_TOKEN_VALIDITY, AUTOAPPROVE, AUTHORITIES) Values ('your-client-id', 'your-client-secret', 'read-write:api-doc', 'password,operator_password,client_credentials', 600, 'true', 'ACCESS_BRAND_brandKey'); --replace brandKey with a valid brand in the setup
...
Verify
...
Deployment
In your browser, enter the URL:
...
Nexus
Our Jenkins jobs are configured to deploy to Nexus. On Nexus, you can find both the source code and the artifacts produced from the build are found.
...