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