============LICENSE_END=========================================================\r
-->\r
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\r
- <modelVersion>4.0.0</modelVersion>\r
- <parent>\r
- <groupId>org.onap.oparent</groupId>\r
- <artifactId>oparent</artifactId>\r
- <version>2.0.0</version>\r
- <relativePath />\r
- </parent>\r
- <groupId>org.onap.dcaegen2.collectors.ves</groupId>\r
- <artifactId>VESCollector</artifactId>\r
- <version>1.5.1-SNAPSHOT</version>\r
- <name>dcaegen2-collectors-ves</name>\r
- <description>VESCollector</description>\r
- <properties>\r
- <!-- PROJECT SETTINGS -->\r
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\r
- <java.version>8</java.version>\r
- <docker.image.name>onap/org.onap.dcaegen2.collectors.ves.vescollector</docker.image.name>\r
- <!-- TEST SETTINGS -->\r
- <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>\r
- <!-- PLUGIN SETTINGS -->\r
- <dependency.locations.enabled>false</dependency.locations.enabled>\r
- <!-- NEXUS RELATED SETTINGS -->\r
- <nexusproxy>https://nexus.onap.org</nexusproxy>\r
- <snapshots.path>content/repositories/snapshots/</snapshots.path>\r
- <releases.path>content/repositories/releases/</releases.path>\r
- <site.path>content/sites/site/org/onap/dcaegen2/collectors/ves/${project.artifactId}/${project.version}</site.path>\r
- <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>\r
- <onap.nexus.dockerregistry.daily>nexus3.onap.org:10003</onap.nexus.dockerregistry.daily>\r
- </properties>\r
- <build>\r
- <pluginManagement>\r
- <plugins>\r
- <plugin>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-maven-plugin</artifactId>\r
- </plugin>\r
- <plugin>\r
- <artifactId>maven-assembly-plugin</artifactId>\r
- <version>3.1.0</version>\r
- </plugin>\r
- <plugin>\r
- <artifactId>maven-javadoc-plugin</artifactId>\r
- <version>3.0.1</version>\r
- </plugin>\r
- <plugin>\r
- <artifactId>maven-project-info-reports-plugin</artifactId>\r
- <version>2.9</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-surefire-plugin</artifactId>\r
- <version>3.0.0-M1</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>com.spotify</groupId>\r
- <artifactId>docker-maven-plugin</artifactId>\r
- <version>1.2.0</version>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.apache.maven.plugins</groupId>\r
- <artifactId>maven-enforcer-plugin</artifactId>\r
- <configuration>\r
- <skip>true</skip>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </pluginManagement>\r
- <plugins>\r
- <plugin>\r
- <artifactId>maven-assembly-plugin</artifactId>\r
- <configuration>\r
- <descriptors>\r
- <descriptor>src/assembly/dep.xml</descriptor>\r
- </descriptors>\r
- <attach>false</attach>\r
- <appendAssemblyId>false</appendAssemblyId>\r
- <updateOnly>true</updateOnly>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>make-assembly</id>\r
- <phase>package</phase>\r
- <goals>\r
- <goal>single</goal>\r
- </goals>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-maven-plugin</artifactId>\r
- <executions>\r
- <execution>\r
- <goals>\r
- <goal>repackage</goal>\r
- </goals>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <artifactId>maven-javadoc-plugin</artifactId>\r
- <configuration>\r
- <quiet>true</quiet>\r
- <verbose>false</verbose>\r
- <useStandardDocletOptions>false</useStandardDocletOptions>\r
- </configuration>\r
- <executions>\r
- <execution>\r
- <id>aggregate</id>\r
- <phase>site</phase>\r
- <goals>\r
- <goal>aggregate</goal>\r
- </goals>\r
- </execution>\r
- <execution>\r
- <id>attach-javadoc</id>\r
- <goals>\r
- <goal>jar</goal>\r
- </goals>\r
- </execution>\r
- </executions>\r
- </plugin>\r
- <plugin>\r
- <groupId>com.spotify</groupId>\r
- <artifactId>docker-maven-plugin</artifactId>\r
- <configuration>\r
- <serverId>${onap.nexus.dockerregistry.daily}</serverId>\r
- <imageName>${onap.nexus.dockerregistry.daily}/${docker.image.name}</imageName>\r
- <imageTags>\r
- <imageTag>${project.version}-${maven.build.timestamp}Z</imageTag>\r
- <imageTag>${project.version}</imageTag>\r
- <imageTag>latest</imageTag>\r
- </imageTags>\r
- <baseImage>openjdk:8-jre-slim</baseImage>\r
- <user>vescollector</user>\r
- <env>\r
- <HOSTALIASES>/etc/host.aliases</HOSTALIASES>\r
- </env>\r
- <workdir>/opt/app/VESCollector</workdir>\r
- <resources>\r
- <resource>\r
- <targetPath>.</targetPath>\r
- <directory>${project.build.directory}/${project.artifactId}-${project.version}</directory>\r
- </resource>\r
- </resources>\r
- <runs>\r
- <run>useradd -r -U vescollector</run>\r
- <run>chown -R vescollector:vescollector /opt/app</run>\r
- <!-- Maven is loosing file permissions during artifacts copy -->\r
- <run>chmod +x bin/*.sh</run>\r
- <run><![CDATA[apt-get update && apt-get install -y --no-install-recommends procps && apt-get install -y vim && apt-get install -y curl && apt-get clean all]]></run>\r
- </runs>\r
- <exposes>\r
- <expose>8080</expose>\r
- <expose>8443</expose>\r
- </exposes>\r
- <cmd>bin/docker-entry.sh</cmd>\r
- </configuration>\r
- <!--<executions>\r
- <execution>\r
- <id>build-image</id>\r
- <phase>package</phase>\r
- <goals>\r
- <goal>deploy</goal>\r
- </goals>\r
- </execution>\r
- <execution>\r
- <id>tag-and-push-image-latest</id>\r
- <phase>deploy</phase>\r
- <goals>\r
- <goal>tag</goal>\r
- </goals>\r
- <configuration>\r
- <image>${docker.image.name}:latest</image>\r
- <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest</newName>\r
- <pushImage>true</pushImage>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>tag-and-push-image-with-version</id>\r
- <phase>deploy</phase>\r
- <goals>\r
- <goal>tag</goal>\r
- </goals>\r
- <configuration>\r
- <image>${docker.image.name}:latest</image>\r
- <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}</newName>\r
- <pushImage>true</pushImage>\r
- </configuration>\r
- </execution>\r
- <execution>\r
- <id>tag-and-push-image-with-version-and-date</id>\r
- <phase>deploy</phase>\r
- <goals>\r
- <goal>tag</goal>\r
- </goals>\r
- <configuration>\r
- <image>${docker.image.name}:latest</image>\r
- <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z</newName>\r
- <pushImage>true</pushImage>\r
- </configuration>\r
- </execution>\r
- </executions> -->\r
- </plugin>\r
- </plugins>\r
- </build>\r
- <profiles>\r
- <profile>\r
- <id>with-system-proxy</id>\r
- <build>\r
- <plugins>\r
- <plugin>\r
- <groupId>com.spotify</groupId>\r
- <artifactId>docker-maven-plugin</artifactId>\r
- <configuration>\r
- <buildArgs>\r
- <http_proxy>${env.http_proxy}</http_proxy>\r
- </buildArgs>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </build>\r
- </profile>\r
- </profiles>\r
- <reporting>\r
- <plugins>\r
- <plugin>\r
- <artifactId>maven-project-info-reports-plugin</artifactId>\r
- <reportSets>\r
- <reportSet>\r
- <reports>\r
- <report>dependencies</report>\r
- <report>license</report>\r
- </reports>\r
- </reportSet>\r
- </reportSets>\r
- </plugin>\r
- <plugin>\r
- <artifactId>maven-javadoc-plugin</artifactId>\r
- <configuration>\r
- <failOnError>false</failOnError>\r
- <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>\r
- <docletArtifact>\r
- <groupId>org.umlgraph</groupId>\r
- <artifactId>umlgraph</artifactId>\r
- <version>5.6</version>\r
- </docletArtifact>\r
- <additionalparam>-views</additionalparam>\r
- <useStandardDocletOptions>true</useStandardDocletOptions>\r
- </configuration>\r
- </plugin>\r
- </plugins>\r
- </reporting>\r
- <dependencyManagement>\r
- <dependencies>\r
- <dependency>\r
- <!-- Import dependency management from Spring Boot -->\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-dependencies</artifactId>\r
- <version>2.1.0.RELEASE</version>\r
- <type>pom</type>\r
- <scope>import</scope>\r
- </dependency>\r
- </dependencies>\r
- </dependencyManagement>\r
- <dependencies>\r
- <!-- JSON RELATED -->\r
- <dependency>\r
- <groupId>com.googlecode.json-simple</groupId>\r
- <artifactId>json-simple</artifactId>\r
- <version>1.1.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.github.fge</groupId>\r
- <artifactId>json-schema-validator</artifactId>\r
- <version>2.2.6</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.github.fge</groupId>\r
- <artifactId>json-schema-core</artifactId>\r
- <version>1.2.5</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.google.code.gson</groupId>\r
- <artifactId>gson</artifactId>\r
- <version>2.8.5</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.json</groupId>\r
- <artifactId>json</artifactId>\r
- <version>20160810</version>\r
- </dependency>\r
- <!-- REST API RELATED -->\r
- <dependency>\r
- <groupId>com.att.nsa</groupId>\r
- <artifactId>cambriaClient</artifactId>\r
- <version>0.0.1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.mashape.unirest</groupId>\r
- <artifactId>unirest-java</artifactId>\r
- <version>1.4.9</version>\r
- </dependency>\r
- <!-- MISCELLANEOUS -->\r
- <dependency>\r
- <groupId>commons-collections</groupId>\r
- <artifactId>commons-collections</artifactId>\r
- <version>3.2.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-configuration</groupId>\r
- <artifactId>commons-configuration</artifactId>\r
- <version>1.10</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>io.vavr</groupId>\r
- <artifactId>vavr</artifactId>\r
- <version>0.9.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-starter-web</artifactId>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-starter-logging</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-starter-log4j2</artifactId>\r
- <version>2.1.5.RELEASE</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>io.springfox</groupId>\r
- <artifactId>springfox-swagger2</artifactId>\r
- <version>2.8.0</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>io.springfox</groupId>\r
- <artifactId>springfox-swagger-ui</artifactId>\r
- <version>2.8.0</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- <!-- TESTING -->\r
- <dependency>\r
- <groupId>org.junit.jupiter</groupId>\r
- <artifactId>junit-jupiter-api</artifactId>\r
- <version>5.3.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.junit.jupiter</groupId>\r
- <artifactId>junit-jupiter-engine</artifactId>\r
- <version>5.3.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.junit.vintage</groupId>\r
- <artifactId>junit-vintage-engine</artifactId>\r
- <version>5.3.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.mockito</groupId>\r
- <artifactId>mockito-junit-jupiter</artifactId>\r
- <version>2.23.0</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.assertj</groupId>\r
- <artifactId>assertj-core</artifactId>\r
- <version>3.8.0</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.google.jimfs</groupId>\r
- <artifactId>jimfs</artifactId>\r
- <version>1.1</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.github.tomakehurst</groupId>\r
- <artifactId>wiremock-standalone</artifactId>\r
- <version>2.17.0</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.springframework.security</groupId>\r
- <artifactId>spring-security-test</artifactId>\r
- <version>5.1.1.RELEASE</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-starter-test</artifactId>\r
- <version>2.1.0.RELEASE</version>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.onap.dcaegen2.services.sdk.security.crypt</groupId>\r
- <artifactId>crypt-password</artifactId>\r
- <version>1.1.6</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.onap.dcaegen2.services.sdk.standardization</groupId>\r
- <artifactId>api-custom-header</artifactId>\r
- <version>1.1.4</version>\r
- </dependency>\r
- </dependencies>\r
- <repositories>\r
- <repository>\r
- <id>external-repository</id>\r
- <url>https://oss.sonatype.org/content/repositories</url>\r
- </repository>\r
- </repositories>\r
- <pluginRepositories>\r
- <!-- Black Duck plugin dependencies -->\r
- <pluginRepository>\r
- <id>JCenter</id>\r
- <name>JCenter Repository</name>\r
- <url>http://jcenter.bintray.com</url>\r
- </pluginRepository>\r
- <pluginRepository>\r
- <id>Restlet</id>\r
- <name>Restlet Repository</name>\r
- <url>http://maven.restlet.com</url>\r
- </pluginRepository>\r
- </pluginRepositories>\r
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\r
+ <modelVersion>4.0.0</modelVersion>\r
+ <parent>\r
+ <groupId>org.onap.oparent</groupId>\r
+ <artifactId>oparent</artifactId>\r
+ <version>2.0.0</version>\r
+ <relativePath/>\r
+ </parent>\r
+ <groupId>org.onap.dcaegen2.collectors.ves</groupId>\r
+ <artifactId>VESCollector</artifactId>\r
+ <version>1.5.1-SNAPSHOT</version>\r
+ <name>dcaegen2-collectors-ves</name>\r
+ <description>VESCollector</description>\r
+ <properties>\r
+ <!-- PROJECT SETTINGS -->\r
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\r
+ <java.version>8</java.version>\r
+ <docker.image.name>onap/org.onap.dcaegen2.collectors.ves.vescollector</docker.image.name>\r
+ <!-- TEST SETTINGS -->\r
+ <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>\r
+ <!-- PLUGIN SETTINGS -->\r
+ <dependency.locations.enabled>false</dependency.locations.enabled>\r
+ <!-- NEXUS RELATED SETTINGS -->\r
+ <nexusproxy>https://nexus.onap.org</nexusproxy>\r
+ <snapshots.path>content/repositories/snapshots/</snapshots.path>\r
+ <releases.path>content/repositories/releases/</releases.path>\r
+ <site.path>content/sites/site/org/onap/dcaegen2/collectors/ves/${project.artifactId}/${project.version}</site.path>\r
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>\r
+ <onap.nexus.dockerregistry.daily>nexus3.onap.org:10003</onap.nexus.dockerregistry.daily>\r
+ </properties>\r
+ <build>\r
+ <pluginManagement>\r
+ <plugins>\r
+ <plugin>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-maven-plugin</artifactId>\r
+ </plugin>\r
+ <plugin>\r
+ <artifactId>maven-assembly-plugin</artifactId>\r
+ <version>3.1.0</version>\r
+ </plugin>\r
+ <plugin>\r
+ <artifactId>maven-javadoc-plugin</artifactId>\r
+ <version>3.0.1</version>\r
+ </plugin>\r
+ <plugin>\r
+ <artifactId>maven-project-info-reports-plugin</artifactId>\r
+ <version>2.9</version>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-surefire-plugin</artifactId>\r
+ <version>3.0.0-M1</version>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>com.spotify</groupId>\r
+ <artifactId>docker-maven-plugin</artifactId>\r
+ <version>1.2.0</version>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-enforcer-plugin</artifactId>\r
+ <configuration>\r
+ <skip>true</skip>\r
+ </configuration>\r
+ </plugin>\r
+ </plugins>\r
+ </pluginManagement>\r
+ <plugins>\r
+ <plugin>\r
+ <artifactId>maven-assembly-plugin</artifactId>\r
+ <configuration>\r
+ <descriptors>\r
+ <descriptor>src/assembly/dep.xml</descriptor>\r
+ </descriptors>\r
+ <attach>false</attach>\r
+ <appendAssemblyId>false</appendAssemblyId>\r
+ <updateOnly>true</updateOnly>\r
+ </configuration>\r
+ <executions>\r
+ <execution>\r
+ <id>make-assembly</id>\r
+ <phase>package</phase>\r
+ <goals>\r
+ <goal>single</goal>\r
+ </goals>\r
+ </execution>\r
+ </executions>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-maven-plugin</artifactId>\r
+ <executions>\r
+ <execution>\r
+ <goals>\r
+ <goal>repackage</goal>\r
+ </goals>\r
+ </execution>\r
+ </executions>\r
+ </plugin>\r
+ <plugin>\r
+ <artifactId>maven-javadoc-plugin</artifactId>\r
+ <configuration>\r
+ <quiet>true</quiet>\r
+ <verbose>false</verbose>\r
+ <useStandardDocletOptions>false</useStandardDocletOptions>\r
+ </configuration>\r
+ <executions>\r
+ <execution>\r
+ <id>aggregate</id>\r
+ <phase>site</phase>\r
+ <goals>\r
+ <goal>aggregate</goal>\r
+ </goals>\r
+ </execution>\r
+ <execution>\r
+ <id>attach-javadoc</id>\r
+ <goals>\r
+ <goal>jar</goal>\r
+ </goals>\r
+ </execution>\r
+ </executions>\r
+ </plugin>\r
+ <plugin>\r
+ <groupId>com.spotify</groupId>\r
+ <artifactId>docker-maven-plugin</artifactId>\r
+ <configuration>\r
+ <serverId>${onap.nexus.dockerregistry.daily}</serverId>\r
+ <imageName>${onap.nexus.dockerregistry.daily}/${docker.image.name}</imageName>\r
+ <imageTags>\r
+ <imageTag>${project.version}-${maven.build.timestamp}Z</imageTag>\r
+ <imageTag>${project.version}</imageTag>\r
+ <imageTag>latest</imageTag>\r
+ </imageTags>\r
+ <baseImage>openjdk:8-jre-slim</baseImage>\r
+ <user>vescollector</user>\r
+ <env>\r
+ <HOSTALIASES>/etc/host.aliases</HOSTALIASES>\r
+ </env>\r
+ <workdir>/opt/app/VESCollector</workdir>\r
+ <resources>\r
+ <resource>\r
+ <targetPath>.</targetPath>\r
+ <directory>${project.build.directory}/${project.artifactId}-${project.version}</directory>\r
+ </resource>\r
+ </resources>\r
+ <runs>\r
+ <run>useradd -r -U vescollector</run>\r
+ <run>chown -R vescollector:vescollector /opt/app</run>\r
+ <run>mkdir /opt/app/VESCollector/logs</run>\r
+ <run>chown -R vescollector:vescollector /opt/app/VESCollector/logs</run>\r
+ <run>chown -R vescollector:vescollector /opt/app/VESCollector/etc</run>\r
+ <!-- Maven is loosing file permissions during artifacts copy -->\r
+ <run>chmod +x bin/*.sh</run>\r
+ <run>\r
+ <![CDATA[apt-get update && apt-get install -y --no-install-recommends procps && apt-get install -y vim && apt-get install -y curl && apt-get clean all]]></run>\r
+ </runs>\r
+ <exposes>\r
+ <expose>8080</expose>\r
+ <expose>8443</expose>\r
+ </exposes>\r
+ <cmd>bin/docker-entry.sh</cmd>\r
+ </configuration>\r
+ <!--<executions>\r
+ <execution>\r
+ <id>build-image</id>\r
+ <phase>package</phase>\r
+ <goals>\r
+ <goal>deploy</goal>\r
+ </goals>\r
+ </execution>\r
+ <execution>\r
+ <id>tag-and-push-image-latest</id>\r
+ <phase>deploy</phase>\r
+ <goals>\r
+ <goal>tag</goal>\r
+ </goals>\r
+ <configuration>\r
+ <image>${docker.image.name}:latest</image>\r
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest</newName>\r
+ <pushImage>true</pushImage>\r
+ </configuration>\r
+ </execution>\r
+ <execution>\r
+ <id>tag-and-push-image-with-version</id>\r
+ <phase>deploy</phase>\r
+ <goals>\r
+ <goal>tag</goal>\r
+ </goals>\r
+ <configuration>\r
+ <image>${docker.image.name}:latest</image>\r
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}</newName>\r
+ <pushImage>true</pushImage>\r
+ </configuration>\r
+ </execution>\r
+ <execution>\r
+ <id>tag-and-push-image-with-version-and-date</id>\r
+ <phase>deploy</phase>\r
+ <goals>\r
+ <goal>tag</goal>\r
+ </goals>\r
+ <configuration>\r
+ <image>${docker.image.name}:latest</image>\r
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z</newName>\r
+ <pushImage>true</pushImage>\r
+ </configuration>\r
+ </execution>\r
+ </executions> -->\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
+ <profiles>\r
+ <profile>\r
+ <id>with-system-proxy</id>\r
+ <build>\r
+ <plugins>\r
+ <plugin>\r
+ <groupId>com.spotify</groupId>\r
+ <artifactId>docker-maven-plugin</artifactId>\r
+ <configuration>\r
+ <buildArgs>\r
+ <http_proxy>${env.http_proxy}</http_proxy>\r
+ </buildArgs>\r
+ </configuration>\r
+ </plugin>\r
+ </plugins>\r
+ </build>\r
+ </profile>\r
+ </profiles>\r
+ <reporting>\r
+ <plugins>\r
+ <plugin>\r
+ <artifactId>maven-project-info-reports-plugin</artifactId>\r
+ <reportSets>\r
+ <reportSet>\r
+ <reports>\r
+ <report>dependencies</report>\r
+ <report>license</report>\r
+ </reports>\r
+ </reportSet>\r
+ </reportSets>\r
+ </plugin>\r
+ <plugin>\r
+ <artifactId>maven-javadoc-plugin</artifactId>\r
+ <configuration>\r
+ <failOnError>false</failOnError>\r
+ <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>\r
+ <docletArtifact>\r
+ <groupId>org.umlgraph</groupId>\r
+ <artifactId>umlgraph</artifactId>\r
+ <version>5.6</version>\r
+ </docletArtifact>\r
+ <additionalparam>-views</additionalparam>\r
+ <useStandardDocletOptions>true</useStandardDocletOptions>\r
+ </configuration>\r
+ </plugin>\r
+ </plugins>\r
+ </reporting>\r
+ <dependencyManagement>\r
+ <dependencies>\r
+ <dependency>\r
+ <!-- Import dependency management from Spring Boot -->\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-dependencies</artifactId>\r
+ <version>2.1.0.RELEASE</version>\r
+ <type>pom</type>\r
+ <scope>import</scope>\r
+ </dependency>\r
+ </dependencies>\r
+ </dependencyManagement>\r
+ <dependencies>\r
+ <!-- JSON RELATED -->\r
+ <dependency>\r
+ <groupId>com.googlecode.json-simple</groupId>\r
+ <artifactId>json-simple</artifactId>\r
+ <version>1.1.1</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.github.fge</groupId>\r
+ <artifactId>json-schema-validator</artifactId>\r
+ <version>2.2.6</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.github.fge</groupId>\r
+ <artifactId>json-schema-core</artifactId>\r
+ <version>1.2.5</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.google.code.gson</groupId>\r
+ <artifactId>gson</artifactId>\r
+ <version>2.8.5</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.json</groupId>\r
+ <artifactId>json</artifactId>\r
+ <version>20160810</version>\r
+ </dependency>\r
+ <!-- REST API RELATED -->\r
+ <dependency>\r
+ <groupId>com.att.nsa</groupId>\r
+ <artifactId>cambriaClient</artifactId>\r
+ <version>0.0.1</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.mashape.unirest</groupId>\r
+ <artifactId>unirest-java</artifactId>\r
+ <version>1.4.9</version>\r
+ </dependency>\r
+ <!-- MISCELLANEOUS -->\r
+ <dependency>\r
+ <groupId>commons-collections</groupId>\r
+ <artifactId>commons-collections</artifactId>\r
+ <version>3.2.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>commons-configuration</groupId>\r
+ <artifactId>commons-configuration</artifactId>\r
+ <version>1.10</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>io.vavr</groupId>\r
+ <artifactId>vavr</artifactId>\r
+ <version>0.9.2</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-starter-web</artifactId>\r
+ <exclusions>\r
+ <exclusion>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-starter-logging</artifactId>\r
+ </exclusion>\r
+ </exclusions>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-starter-log4j2</artifactId>\r
+ <version>2.1.5.RELEASE</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>io.springfox</groupId>\r
+ <artifactId>springfox-swagger2</artifactId>\r
+ <version>2.8.0</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>io.springfox</groupId>\r
+ <artifactId>springfox-swagger-ui</artifactId>\r
+ <version>2.8.0</version>\r
+ <scope>compile</scope>\r
+ </dependency>\r
+ <!-- TESTING -->\r
+ <dependency>\r
+ <groupId>org.junit.jupiter</groupId>\r
+ <artifactId>junit-jupiter-api</artifactId>\r
+ <version>5.3.1</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.junit.jupiter</groupId>\r
+ <artifactId>junit-jupiter-engine</artifactId>\r
+ <version>5.3.1</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.junit.vintage</groupId>\r
+ <artifactId>junit-vintage-engine</artifactId>\r
+ <version>5.3.1</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.mockito</groupId>\r
+ <artifactId>mockito-junit-jupiter</artifactId>\r
+ <version>2.23.0</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.assertj</groupId>\r
+ <artifactId>assertj-core</artifactId>\r
+ <version>3.8.0</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.google.jimfs</groupId>\r
+ <artifactId>jimfs</artifactId>\r
+ <version>1.1</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>com.github.tomakehurst</groupId>\r
+ <artifactId>wiremock-standalone</artifactId>\r
+ <version>2.17.0</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.security</groupId>\r
+ <artifactId>spring-security-test</artifactId>\r
+ <version>5.1.1.RELEASE</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-starter-test</artifactId>\r
+ <version>2.1.0.RELEASE</version>\r
+ <scope>test</scope>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.onap.dcaegen2.services.sdk.security.crypt</groupId>\r
+ <artifactId>crypt-password</artifactId>\r
+ <version>1.1.6</version>\r
+ </dependency>\r
+ <dependency>\r
+ <groupId>org.onap.dcaegen2.services.sdk.standardization</groupId>\r
+ <artifactId>api-custom-header</artifactId>\r
+ <version>1.1.4</version>\r
+ </dependency>\r
+ </dependencies>\r
+ <repositories>\r
+ <repository>\r
+ <id>external-repository</id>\r
+ <url>https://oss.sonatype.org/content/repositories</url>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <!-- Black Duck plugin dependencies -->\r
+ <pluginRepository>\r
+ <id>JCenter</id>\r
+ <name>JCenter Repository</name>\r
+ <url>http://jcenter.bintray.com</url>\r
+ </pluginRepository>\r
+ <pluginRepository>\r
+ <id>Restlet</id>\r
+ <name>Restlet Repository</name>\r
+ <url>http://maven.restlet.com</url>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
</project>\r
* ============LICENSE_START=======================================================
* org.onap.dcaegen2.collectors.ves
* ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
+ * Copyright (C) 2018 - 2019 Nokia. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.dcae.restapi;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
import io.vavr.collection.HashMap;
import io.vavr.collection.Map;
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
@RunWith(MockitoJUnitRunner.Silent.class)
public class ApiAuthInterceptionTest {
- private static final String USERNAME = "Foo";
- private static final String PASSWORD = "Bar";
- private static final Map<String, String> CREDENTIALS = HashMap.of(USERNAME, PASSWORD);
+ private static final String USERNAME = "Foo";
+ private static final String PASSWORD = "Bar";
+ private static final Map<String, String> CREDENTIALS = HashMap.of(USERNAME, PASSWORD);
- @Mock
- private Logger log;
+ @Mock
+ private Logger log;
- @Mock
- private ApplicationSettings settings;
+ @Mock
+ private ApplicationSettings settings;
- @Mock
- private HttpServletResponse response;
+ @Mock
+ private HttpServletResponse response;
- @Mock
- private FilterChain obj;
+ @Mock
+ private Object obj;
- @Mock
- private PrintWriter writer;
+ @Mock
+ private PrintWriter writer;
- @InjectMocks
- private ApiAuthInterceptor sut;
+ @InjectMocks
+ private ApiAuthInterceptor sut;
- private HttpServletRequest createEmptyRequest() {
- return MockMvcRequestBuilders
+ private HttpServletRequest createEmptyRequest() {
+ return MockMvcRequestBuilders
+ .post("")
+ .buildRequest(null);
+ }
+
+ private HttpServletRequest createRequestWithAuthorizationHeader() {
+ return SecurityMockMvcRequestPostProcessors
+ .httpBasic(USERNAME, PASSWORD)
+ .postProcessRequest(
+ MockMvcRequestBuilders
.post("")
- .buildRequest(null);
- }
-
- private HttpServletRequest createRequestWithAuthorizationHeader() {
- return SecurityMockMvcRequestPostProcessors
- .httpBasic(USERNAME, PASSWORD)
- .postProcessRequest(
- MockMvcRequestBuilders
- .post("")
- .buildRequest(null));
- }
-
- @Test
- public void shouldSucceedWhenAuthorizationIsDisabled() throws IOException, ServletException {
- // given
- final HttpServletRequest request = createEmptyRequest();
-
- when(settings.authMethod()).thenReturn(AuthMethodType.NO_AUTH.value());
-
- // when
- sut.doFilter(request, response, obj);
-
- // then
- verify(obj, atLeastOnce()).doFilter(request, response);
- }
-
- @Test
- public void shouldFailDueToEmptyBasicAuthorizationHeader() throws IOException, ServletException {
- // given
- final HttpServletRequest request = createEmptyRequest();
-
- when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
- when(response.getWriter()).thenReturn(writer);
-
- // when
- sut.doFilter(request, response, obj);
-
- // then
- verify(response).setStatus(HttpStatus.UNAUTHORIZED.value());
- verify(writer).write(ApiException.UNAUTHORIZED_USER.toJSON().toString());
- }
-
- @Test
- public void shouldFailDueToBasicAuthenticationUserMissingFromSettings()
- throws IOException, ServletException {
- // given
- final HttpServletRequest request = createRequestWithAuthorizationHeader();
-
- when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
- when(response.getWriter()).thenReturn(writer);
-
- // when
- sut.doFilter(request, response, obj);
-
- // then
- verify(response).setStatus(HttpStatus.UNAUTHORIZED.value());
- verify(writer).write(ApiException.UNAUTHORIZED_USER.toJSON().toString());
- }
-
- @Test
- public void shouldSucceed() throws IOException, ServletException {
- // given
- final HttpServletRequest request = createRequestWithAuthorizationHeader();
- when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
- when(settings.validAuthorizationCredentials()).thenReturn(
- HashMap.of(USERNAME, "$2a$10$BsZkEynNm/93wbAeeZuxJeu6IHRyQl4XReqDg2BtYOFDhUsz20.3G"));
- when(response.getWriter()).thenReturn(writer);
-
- // when
- sut.doFilter(request, response, obj);
-
- // then
- verify(obj, atLeastOnce()).doFilter(request, response);
- }
-
- @Test
- public void shouldFailDueToInvalidBasicAuthorizationHeaderValue()
- throws IOException, ServletException {
- // given
- final HttpServletRequest request =
- MockMvcRequestBuilders
- .post("")
- .header(HttpHeaders.AUTHORIZATION, "FooBar")
- .buildRequest(null);
-
- when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
- when(settings.validAuthorizationCredentials()).thenReturn(CREDENTIALS);
- when(response.getWriter()).thenReturn(writer);
-
- // when
- sut.doFilter(request, response, obj);
-
- //then
- verify(response).setStatus(HttpStatus.UNAUTHORIZED.value());
- verify(writer).write(ApiException.UNAUTHORIZED_USER.toJSON().toString());
- }
+ .buildRequest(null));
+ }
+
+ @Test
+ public void shouldSucceedWhenAuthorizationIsDisabled() throws IOException {
+ // given
+ final HttpServletRequest request = createEmptyRequest();
+
+ when(settings.authMethod()).thenReturn(AuthMethodType.NO_AUTH.value());
+
+ // when
+ final boolean isAuthorized = sut.preHandle(request, response, obj);
+
+ // then
+ assertTrue(isAuthorized);
+ }
+
+ @Test
+ public void shouldFailDueToEmptyBasicAuthorizationHeader() throws IOException {
+ // given
+ final HttpServletRequest request = createEmptyRequest();
+
+ when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
+ when(response.getWriter()).thenReturn(writer);
+
+ // when
+ final boolean isAuthorized = sut.preHandle(request, response, obj);
+
+
+ // then
+ assertFalse(isAuthorized);
+
+ verify(response).setStatus(HttpStatus.UNAUTHORIZED.value());
+ verify(writer).write(ApiException.UNAUTHORIZED_USER.toJSON().toString());
+ }
+
+ @Test
+ public void shouldFailDueToBasicAuthenticationUserMissingFromSettings() throws IOException {
+ // given
+ final HttpServletRequest request = createRequestWithAuthorizationHeader();
+
+ when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
+ when(response.getWriter()).thenReturn(writer);
+
+ // when
+ final boolean isAuthorized = sut.preHandle(request, response, obj);
+
+ // then
+ assertFalse(isAuthorized);
+
+ verify(response).setStatus(HttpStatus.UNAUTHORIZED.value());
+ verify(writer).write(ApiException.UNAUTHORIZED_USER.toJSON().toString());
+ }
+
+ @Test
+ public void shouldSucceed() throws IOException {
+ // given
+ final HttpServletRequest request = createRequestWithAuthorizationHeader();
+ when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
+ when(settings.validAuthorizationCredentials()).thenReturn(
+ HashMap.of(USERNAME, "$2a$10$BsZkEynNm/93wbAeeZuxJeu6IHRyQl4XReqDg2BtYOFDhUsz20.3G"));
+ when(response.getWriter()).thenReturn(writer);
+
+ // when
+ final boolean isAuthorized = sut.preHandle(request, response, obj);
+
+ // then
+ assertTrue(isAuthorized);
+ }
+
+ @Test
+ public void shouldFailDueToInvalidBasicAuthorizationHeaderValue() throws IOException {
+ // given
+ final HttpServletRequest request =
+ MockMvcRequestBuilders
+ .post("")
+ .header(HttpHeaders.AUTHORIZATION, "FooBar")
+ .buildRequest(null);
+
+ when(settings.authMethod()).thenReturn(AuthMethodType.BASIC_AUTH.value());
+ when(settings.validAuthorizationCredentials()).thenReturn(CREDENTIALS);
+ when(response.getWriter()).thenReturn(writer);
+
+ // when
+ final boolean isAuthorized = sut.preHandle(request, response, obj);
+
+ // then
+ assertFalse(isAuthorized);
+
+ verify(response).setStatus(HttpStatus.UNAUTHORIZED.value());
+ verify(writer).write(ApiException.UNAUTHORIZED_USER.toJSON().toString());
+ }
}