17 changed files with 935 additions and 1 deletions
@ -0,0 +1,139 @@ |
|||||||
|
<?xml version="1.0"?> |
||||||
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" |
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
||||||
|
<modelVersion>4.0.0</modelVersion> |
||||||
|
<groupId>com.redhat.pctsec</groupId> |
||||||
|
<artifactId>osh-wrapper-service</artifactId> |
||||||
|
<version>1.0.0-SNAPSHOT</version> |
||||||
|
<properties> |
||||||
|
<compiler-plugin.version>3.11.0</compiler-plugin.version> |
||||||
|
<maven.compiler.release>17</maven.compiler.release> |
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
||||||
|
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> |
||||||
|
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> |
||||||
|
<quarkus.platform.version>3.1.2.Final</quarkus.platform.version> |
||||||
|
<skipITs>true</skipITs> |
||||||
|
<surefire-plugin.version>3.0.0</surefire-plugin.version> |
||||||
|
</properties> |
||||||
|
<dependencyManagement> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>${quarkus.platform.group-id}</groupId> |
||||||
|
<artifactId>${quarkus.platform.artifact-id}</artifactId> |
||||||
|
<version>${quarkus.platform.version}</version> |
||||||
|
<type>pom</type> |
||||||
|
<scope>import</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
</dependencyManagement> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkiverse.kerberos</groupId> |
||||||
|
<artifactId>quarkus-kerberos</artifactId> |
||||||
|
<version>2.1.0</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkus</groupId> |
||||||
|
<artifactId>quarkus-resteasy-reactive</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkus</groupId> |
||||||
|
<artifactId>quarkus-openshift</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkiverse.tektonclient</groupId> |
||||||
|
<artifactId>quarkus-tekton-client</artifactId> |
||||||
|
<version>1.0.1</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkus</groupId> |
||||||
|
<artifactId>quarkus-arc</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkus</groupId> |
||||||
|
<artifactId>quarkus-hibernate-validator</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.quarkus</groupId> |
||||||
|
<artifactId>quarkus-junit5</artifactId> |
||||||
|
<scope>test</scope> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>io.rest-assured</groupId> |
||||||
|
<artifactId>rest-assured</artifactId> |
||||||
|
<scope>test</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
<build> |
||||||
|
<plugins> |
||||||
|
<plugin> |
||||||
|
<groupId>${quarkus.platform.group-id}</groupId> |
||||||
|
<artifactId>quarkus-maven-plugin</artifactId> |
||||||
|
<version>${quarkus.platform.version}</version> |
||||||
|
<extensions>true</extensions> |
||||||
|
<executions> |
||||||
|
<execution> |
||||||
|
<goals> |
||||||
|
<goal>build</goal> |
||||||
|
<goal>generate-code</goal> |
||||||
|
<goal>generate-code-tests</goal> |
||||||
|
</goals> |
||||||
|
</execution> |
||||||
|
</executions> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||||
|
<version>${compiler-plugin.version}</version> |
||||||
|
<configuration> |
||||||
|
<compilerArgs> |
||||||
|
<arg>-parameters</arg> |
||||||
|
</compilerArgs> |
||||||
|
</configuration> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-surefire-plugin</artifactId> |
||||||
|
<version>${surefire-plugin.version}</version> |
||||||
|
<configuration> |
||||||
|
<systemPropertyVariables> |
||||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
||||||
|
<maven.home>${maven.home}</maven.home> |
||||||
|
</systemPropertyVariables> |
||||||
|
</configuration> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-failsafe-plugin</artifactId> |
||||||
|
<version>${surefire-plugin.version}</version> |
||||||
|
<executions> |
||||||
|
<execution> |
||||||
|
<goals> |
||||||
|
<goal>integration-test</goal> |
||||||
|
<goal>verify</goal> |
||||||
|
</goals> |
||||||
|
<configuration> |
||||||
|
<systemPropertyVariables> |
||||||
|
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> |
||||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
||||||
|
<maven.home>${maven.home}</maven.home> |
||||||
|
</systemPropertyVariables> |
||||||
|
</configuration> |
||||||
|
</execution> |
||||||
|
</executions> |
||||||
|
</plugin> |
||||||
|
</plugins> |
||||||
|
</build> |
||||||
|
<profiles> |
||||||
|
<profile> |
||||||
|
<id>native</id> |
||||||
|
<activation> |
||||||
|
<property> |
||||||
|
<name>native</name> |
||||||
|
</property> |
||||||
|
</activation> |
||||||
|
<properties> |
||||||
|
<skipITs>false</skipITs> |
||||||
|
<quarkus.package.type>native</quarkus.package.type> |
||||||
|
</properties> |
||||||
|
</profile> |
||||||
|
</profiles> |
||||||
|
</project> |
||||||
@ -0,0 +1,95 @@ |
|||||||
|
#### |
||||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
||||||
|
# |
||||||
|
# Before building the container image run: |
||||||
|
# |
||||||
|
# ./mvnw package |
||||||
|
# |
||||||
|
# Then, build the image with: |
||||||
|
# |
||||||
|
# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/osh-wrapper-service-jvm . |
||||||
|
# |
||||||
|
# Then run the container using: |
||||||
|
# |
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/osh-wrapper-service-jvm |
||||||
|
# |
||||||
|
# If you want to include the debug port into your docker image |
||||||
|
# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. |
||||||
|
# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 |
||||||
|
# when running the container |
||||||
|
# |
||||||
|
# Then run the container using : |
||||||
|
# |
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/osh-wrapper-service-jvm |
||||||
|
# |
||||||
|
# This image uses the `run-java.sh` script to run the application. |
||||||
|
# This scripts computes the command line to execute your Java application, and |
||||||
|
# includes memory/GC tuning. |
||||||
|
# You can configure the behavior using the following environment properties: |
||||||
|
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") |
||||||
|
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options |
||||||
|
# in JAVA_OPTS (example: "-Dsome.property=foo") |
||||||
|
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is |
||||||
|
# used to calculate a default maximal heap memory based on a containers restriction. |
||||||
|
# If used in a container without any memory constraints for the container then this |
||||||
|
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio |
||||||
|
# of the container available memory as set here. The default is `50` which means 50% |
||||||
|
# of the available memory is used as an upper boundary. You can skip this mechanism by |
||||||
|
# setting this value to `0` in which case no `-Xmx` option is added. |
||||||
|
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This |
||||||
|
# is used to calculate a default initial heap memory based on the maximum heap memory. |
||||||
|
# If used in a container without any memory constraints for the container then this |
||||||
|
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio |
||||||
|
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` |
||||||
|
# is used as the initial heap size. You can skip this mechanism by setting this value |
||||||
|
# to `0` in which case no `-Xms` option is added (example: "25") |
||||||
|
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. |
||||||
|
# This is used to calculate the maximum value of the initial heap memory. If used in |
||||||
|
# a container without any memory constraints for the container then this option has |
||||||
|
# no effect. If there is a memory constraint then `-Xms` is limited to the value set |
||||||
|
# here. The default is 4096MB which means the calculated value of `-Xms` never will |
||||||
|
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") |
||||||
|
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output |
||||||
|
# when things are happening. This option, if set to true, will set |
||||||
|
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). |
||||||
|
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: |
||||||
|
# true"). |
||||||
|
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). |
||||||
|
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in |
||||||
|
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") |
||||||
|
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). |
||||||
|
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. |
||||||
|
# (example: "20") |
||||||
|
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. |
||||||
|
# (example: "40") |
||||||
|
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. |
||||||
|
# (example: "4") |
||||||
|
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus |
||||||
|
# previous GC times. (example: "90") |
||||||
|
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") |
||||||
|
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") |
||||||
|
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should |
||||||
|
# contain the necessary JRE command-line options to specify the required GC, which |
||||||
|
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). |
||||||
|
# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") |
||||||
|
# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") |
||||||
|
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be |
||||||
|
# accessed directly. (example: "foo.example.com,bar.example.com") |
||||||
|
# |
||||||
|
### |
||||||
|
FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 |
||||||
|
|
||||||
|
ENV LANGUAGE='en_US:en' |
||||||
|
|
||||||
|
|
||||||
|
# We make four distinct layers so if there are application changes the library layers can be re-used |
||||||
|
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ |
||||||
|
COPY --chown=185 target/quarkus-app/*.jar /deployments/ |
||||||
|
COPY --chown=185 target/quarkus-app/app/ /deployments/app/ |
||||||
|
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ |
||||||
|
|
||||||
|
EXPOSE 8080 |
||||||
|
USER 185 |
||||||
|
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
||||||
|
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" |
||||||
|
|
||||||
@ -0,0 +1,91 @@ |
|||||||
|
#### |
||||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
||||||
|
# |
||||||
|
# Before building the container image run: |
||||||
|
# |
||||||
|
# ./mvnw package -Dquarkus.package.type=legacy-jar |
||||||
|
# |
||||||
|
# Then, build the image with: |
||||||
|
# |
||||||
|
# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/osh-wrapper-service-legacy-jar . |
||||||
|
# |
||||||
|
# Then run the container using: |
||||||
|
# |
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/osh-wrapper-service-legacy-jar |
||||||
|
# |
||||||
|
# If you want to include the debug port into your docker image |
||||||
|
# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005. |
||||||
|
# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005 |
||||||
|
# when running the container |
||||||
|
# |
||||||
|
# Then run the container using : |
||||||
|
# |
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/osh-wrapper-service-legacy-jar |
||||||
|
# |
||||||
|
# This image uses the `run-java.sh` script to run the application. |
||||||
|
# This scripts computes the command line to execute your Java application, and |
||||||
|
# includes memory/GC tuning. |
||||||
|
# You can configure the behavior using the following environment properties: |
||||||
|
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") |
||||||
|
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options |
||||||
|
# in JAVA_OPTS (example: "-Dsome.property=foo") |
||||||
|
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is |
||||||
|
# used to calculate a default maximal heap memory based on a containers restriction. |
||||||
|
# If used in a container without any memory constraints for the container then this |
||||||
|
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio |
||||||
|
# of the container available memory as set here. The default is `50` which means 50% |
||||||
|
# of the available memory is used as an upper boundary. You can skip this mechanism by |
||||||
|
# setting this value to `0` in which case no `-Xmx` option is added. |
||||||
|
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This |
||||||
|
# is used to calculate a default initial heap memory based on the maximum heap memory. |
||||||
|
# If used in a container without any memory constraints for the container then this |
||||||
|
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio |
||||||
|
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx` |
||||||
|
# is used as the initial heap size. You can skip this mechanism by setting this value |
||||||
|
# to `0` in which case no `-Xms` option is added (example: "25") |
||||||
|
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS. |
||||||
|
# This is used to calculate the maximum value of the initial heap memory. If used in |
||||||
|
# a container without any memory constraints for the container then this option has |
||||||
|
# no effect. If there is a memory constraint then `-Xms` is limited to the value set |
||||||
|
# here. The default is 4096MB which means the calculated value of `-Xms` never will |
||||||
|
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096") |
||||||
|
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output |
||||||
|
# when things are happening. This option, if set to true, will set |
||||||
|
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true"). |
||||||
|
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example: |
||||||
|
# true"). |
||||||
|
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787"). |
||||||
|
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in |
||||||
|
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2") |
||||||
|
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024"). |
||||||
|
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion. |
||||||
|
# (example: "20") |
||||||
|
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking. |
||||||
|
# (example: "40") |
||||||
|
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection. |
||||||
|
# (example: "4") |
||||||
|
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus |
||||||
|
# previous GC times. (example: "90") |
||||||
|
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20") |
||||||
|
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100") |
||||||
|
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should |
||||||
|
# contain the necessary JRE command-line options to specify the required GC, which |
||||||
|
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC). |
||||||
|
# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080") |
||||||
|
# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080") |
||||||
|
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be |
||||||
|
# accessed directly. (example: "foo.example.com,bar.example.com") |
||||||
|
# |
||||||
|
### |
||||||
|
FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 |
||||||
|
|
||||||
|
ENV LANGUAGE='en_US:en' |
||||||
|
|
||||||
|
|
||||||
|
COPY target/lib/* /deployments/lib/ |
||||||
|
COPY target/*-runner.jar /deployments/quarkus-run.jar |
||||||
|
|
||||||
|
EXPOSE 8080 |
||||||
|
USER 185 |
||||||
|
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
||||||
|
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" |
||||||
@ -0,0 +1,27 @@ |
|||||||
|
#### |
||||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. |
||||||
|
# |
||||||
|
# Before building the container image run: |
||||||
|
# |
||||||
|
# ./mvnw package -Pnative |
||||||
|
# |
||||||
|
# Then, build the image with: |
||||||
|
# |
||||||
|
# docker build -f src/main/docker/Dockerfile.native -t quarkus/osh-wrapper-service . |
||||||
|
# |
||||||
|
# Then run the container using: |
||||||
|
# |
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/osh-wrapper-service |
||||||
|
# |
||||||
|
### |
||||||
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 |
||||||
|
WORKDIR /work/ |
||||||
|
RUN chown 1001 /work \ |
||||||
|
&& chmod "g+rwX" /work \ |
||||||
|
&& chown 1001:root /work |
||||||
|
COPY --chown=1001:root target/*-runner /work/application |
||||||
|
|
||||||
|
EXPOSE 8080 |
||||||
|
USER 1001 |
||||||
|
|
||||||
|
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
#### |
||||||
|
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode. |
||||||
|
# It uses a micro base image, tuned for Quarkus native executables. |
||||||
|
# It reduces the size of the resulting container image. |
||||||
|
# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image. |
||||||
|
# |
||||||
|
# Before building the container image run: |
||||||
|
# |
||||||
|
# ./mvnw package -Pnative |
||||||
|
# |
||||||
|
# Then, build the image with: |
||||||
|
# |
||||||
|
# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/osh-wrapper-service . |
||||||
|
# |
||||||
|
# Then run the container using: |
||||||
|
# |
||||||
|
# docker run -i --rm -p 8080:8080 quarkus/osh-wrapper-service |
||||||
|
# |
||||||
|
### |
||||||
|
FROM quay.io/quarkus/quarkus-micro-image:2.0 |
||||||
|
WORKDIR /work/ |
||||||
|
RUN chown 1001 /work \ |
||||||
|
&& chmod "g+rwX" /work \ |
||||||
|
&& chown 1001:root /work |
||||||
|
COPY --chown=1001:root target/*-runner /work/application |
||||||
|
|
||||||
|
EXPOSE 8080 |
||||||
|
USER 1001 |
||||||
|
|
||||||
|
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
package com.redhat.pctsec; |
||||||
|
|
||||||
|
import jakarta.ws.rs.GET; |
||||||
|
import jakarta.ws.rs.Path; |
||||||
|
import jakarta.ws.rs.Produces; |
||||||
|
import jakarta.ws.rs.core.MediaType; |
||||||
|
|
||||||
|
@Path("/hello") |
||||||
|
public class GreetingResource { |
||||||
|
|
||||||
|
@GET |
||||||
|
@Produces(MediaType.TEXT_PLAIN) |
||||||
|
public String hello() { |
||||||
|
return "Hello from RESTEasy Reactive"; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
package com.redhat.pctsec.model; |
||||||
|
|
||||||
|
public class ScanCollection { |
||||||
|
} |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
package com.redhat.pctsec.model; |
||||||
|
import java.util.LinkedHashMap; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
import com.fasterxml.jackson.annotation.JsonAnyGetter; |
||||||
|
import com.fasterxml.jackson.annotation.JsonAnySetter; |
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore; |
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude; |
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty; |
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyDescription; |
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder; |
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; |
||||||
|
import jakarta.validation.Valid; |
||||||
|
import jakarta.validation.constraints.NotNull; |
||||||
|
import jakarta.validation.constraints.Size; |
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL) |
||||||
|
@JsonPropertyOrder({ |
||||||
|
"type", |
||||||
|
"build-id" |
||||||
|
}) |
||||||
|
public class build { |
||||||
|
@NotNull |
||||||
|
@JsonProperty("type") |
||||||
|
public String type; |
||||||
|
|
||||||
|
@NotNull |
||||||
|
@JsonProperty("build-id") |
||||||
|
public String buildId; |
||||||
|
} |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
package com.redhat.pctsec.model; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude; |
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty; |
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder; |
||||||
|
import jakarta.validation.constraints.NotNull; |
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL) |
||||||
|
@JsonPropertyOrder({ |
||||||
|
"type", |
||||||
|
"repo", |
||||||
|
"ref" |
||||||
|
}) |
||||||
|
public class git { |
||||||
|
@NotNull |
||||||
|
@JsonProperty("type") |
||||||
|
public String type; |
||||||
|
|
||||||
|
@NotNull |
||||||
|
@JsonProperty("repo") |
||||||
|
public String repo; |
||||||
|
|
||||||
|
@NotNull |
||||||
|
@JsonProperty("ref") |
||||||
|
public String ref; |
||||||
|
} |
||||||
@ -0,0 +1,85 @@ |
|||||||
|
package com.redhat.pctsec.model; |
||||||
|
import java.util.LinkedHashMap; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
import com.fasterxml.jackson.annotation.JsonAnyGetter; |
||||||
|
import com.fasterxml.jackson.annotation.JsonAnySetter; |
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore; |
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude; |
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty; |
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyDescription; |
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder; |
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; |
||||||
|
import jakarta.validation.Valid; |
||||||
|
import jakarta.validation.constraints.NotNull; |
||||||
|
import jakarta.validation.constraints.Size; |
||||||
|
|
||||||
|
public class pssaas { |
||||||
|
/** |
||||||
|
* The product ID associated with the scan. |
||||||
|
* (Required) |
||||||
|
* |
||||||
|
*/ |
||||||
|
@JsonProperty("product-id") |
||||||
|
@JsonPropertyDescription("The product ID associated with the scan.") |
||||||
|
@NotNull |
||||||
|
public String productId; |
||||||
|
/** |
||||||
|
* The submission event ID associated with the scan. |
||||||
|
* |
||||||
|
*/ |
||||||
|
@JsonProperty("event-id") |
||||||
|
@JsonPropertyDescription("The submission event ID associated with the scan.") |
||||||
|
public String eventId; |
||||||
|
/** |
||||||
|
* Indicates whether or not the product is a managed service. |
||||||
|
* (Required) |
||||||
|
* |
||||||
|
*/ |
||||||
|
@JsonProperty("is-managed-service") |
||||||
|
@JsonPropertyDescription("Indicates whether or not the product is a managed service.") |
||||||
|
@NotNull |
||||||
|
public Boolean isManagedService; |
||||||
|
/** |
||||||
|
* The version of CPaaS that submitted the scan. |
||||||
|
* |
||||||
|
*/ |
||||||
|
@JsonProperty("cpaas-version") |
||||||
|
@JsonPropertyDescription("The version of CPaaS that submitted the scan.") |
||||||
|
public String cpaasVersion; |
||||||
|
/** |
||||||
|
* URL of Jenkins job that submitted the scan. |
||||||
|
* |
||||||
|
*/ |
||||||
|
@JsonProperty("job-url") |
||||||
|
@JsonPropertyDescription("URL of Jenkins job that submitted the scan.") |
||||||
|
public String jobUrl; |
||||||
|
/** |
||||||
|
* List of components to be scanned. |
||||||
|
* (Required) |
||||||
|
* |
||||||
|
*/ |
||||||
|
@JsonProperty("component-list") |
||||||
|
@JsonDeserialize(as = java.util.LinkedHashSet.class) |
||||||
|
@JsonPropertyDescription("List of components to be scanned.") |
||||||
|
@Size(min = 1) |
||||||
|
@Valid |
||||||
|
@NotNull |
||||||
|
public Set<Object> componentList; |
||||||
|
@JsonIgnore |
||||||
|
@Valid |
||||||
|
private Map<String, Object> additionalProperties = new LinkedHashMap<String, Object>(); |
||||||
|
|
||||||
|
/* |
||||||
|
@JsonAnyGetter |
||||||
|
public Map<String, Object> getAdditionalProperties() { |
||||||
|
return this.additionalProperties; |
||||||
|
} |
||||||
|
|
||||||
|
@JsonAnySetter |
||||||
|
public void setAdditionalProperty(String name, Object value) { |
||||||
|
this.additionalProperties.put(name, value); |
||||||
|
} |
||||||
|
*/ |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
package com.redhat.pctsec.model; |
||||||
|
|
||||||
|
public class scanchain { |
||||||
|
} |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
package com.redhat.pctsec.rest.v1alpha1; |
||||||
|
|
||||||
|
import io.quarkiverse.kerberos.KerberosPrincipal; |
||||||
|
import io.quarkus.security.Authenticated; |
||||||
|
import io.quarkus.security.identity.SecurityIdentity; |
||||||
|
import jakarta.inject.Inject; |
||||||
|
import jakarta.ws.rs.GET; |
||||||
|
import jakarta.ws.rs.Path; |
||||||
|
import jakarta.ws.rs.Produces; |
||||||
|
|
||||||
|
@Path("/Kerberos") |
||||||
|
@Authenticated |
||||||
|
public class Kerberos { |
||||||
|
@Inject |
||||||
|
SecurityIdentity identity; |
||||||
|
@Inject |
||||||
|
KerberosPrincipal kerberosPrincipal; |
||||||
|
|
||||||
|
@GET |
||||||
|
@Path("/me") |
||||||
|
@Produces("text/plain") |
||||||
|
public String me() { |
||||||
|
return identity.getPrincipal().getName(); |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
package com.redhat.pctsec.rest.v1alpha1; |
||||||
|
|
||||||
|
import com.redhat.pctsec.model.ScanCollection; |
||||||
|
import com.redhat.pctsec.model.pssaas; |
||||||
|
import jakarta.validation.Valid; |
||||||
|
import jakarta.ws.rs.*; |
||||||
|
import org.jboss.resteasy.reactive.RestQuery; |
||||||
|
|
||||||
|
|
||||||
|
@Path("/Scan") |
||||||
|
public class Scan { |
||||||
|
|
||||||
|
@POST |
||||||
|
@Path("PSSaaS") |
||||||
|
@Consumes({ "application/json" }) |
||||||
|
public Integer createScans(@Valid pssaas scanRequest) |
||||||
|
{ |
||||||
|
//Validate JSON
|
||||||
|
|
||||||
|
//CreateScanCollection
|
||||||
|
//Return ScanCollectionID
|
||||||
|
return 1; |
||||||
|
} |
||||||
|
|
||||||
|
@GET |
||||||
|
@Path("{id}") |
||||||
|
public ScanCollection scanRequest(String id){ |
||||||
|
ScanCollection sr = new ScanCollection(); |
||||||
|
return sr; |
||||||
|
} |
||||||
|
|
||||||
|
@GET |
||||||
|
@Path("single/git") |
||||||
|
public String singleGit(@RestQuery String repo, @RestQuery String ref) |
||||||
|
{ |
||||||
|
return "restult"; |
||||||
|
} |
||||||
|
|
||||||
|
@GET |
||||||
|
@Path("single/brew") |
||||||
|
public String singleGit(@RestQuery String brewId) |
||||||
|
{ |
||||||
|
return "result"; |
||||||
|
} |
||||||
|
} |
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,8 @@ |
|||||||
|
package com.redhat.pctsec; |
||||||
|
|
||||||
|
import io.quarkus.test.junit.QuarkusIntegrationTest; |
||||||
|
|
||||||
|
@QuarkusIntegrationTest |
||||||
|
public class GreetingResourceIT extends GreetingResourceTest { |
||||||
|
// Execute the same tests but in packaged mode.
|
||||||
|
} |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
package com.redhat.pctsec; |
||||||
|
|
||||||
|
import io.quarkus.test.junit.QuarkusTest; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
|
||||||
|
import static io.restassured.RestAssured.given; |
||||||
|
import static org.hamcrest.CoreMatchers.is; |
||||||
|
|
||||||
|
@QuarkusTest |
||||||
|
public class GreetingResourceTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testHelloEndpoint() { |
||||||
|
given() |
||||||
|
.when().get("/hello") |
||||||
|
.then() |
||||||
|
.statusCode(200) |
||||||
|
.body(is("Hello from RESTEasy Reactive")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue