proidc
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>eu.ciechanowiec</groupId>
<artifactId>proidc</artifactId>
<version>1.5.0</version>
</dependency><?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.7</version>
<relativePath/>
</parent>
<groupId>eu.ciechanowiec</groupId>
<artifactId>proidc</artifactId>
<version>1.5.0</version>
<packaging>jar</packaging>
<name>PROIDC</name>
<description>Simple Google OIDC-based security gateway in front of an SR Instance of the Sling Rocket Framework
</description>
<url>${url}</url>
<inceptionYear>2025</inceptionYear>
<licenses>
<license>
<name>MIT No Attribution</name>
<url>https://spdx.org/licenses/MIT-0.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>ciechanowiec</id>
<name>${project.developer.name}</name>
<email>${project.developer.email}</email>
</developer>
</developers>
<scm>
<connection>scm:git:git@github.com:ciechanowiec/proidc.git</connection>
<developerConnection>scm:git:git@github.com:ciechanowiec/proidc.git</developerConnection>
<tag>${project.artifactId}-${project.version}</tag>
<url>${url}</url>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>${url}/issues</url>
</issueManagement>
<properties>
<url>https://github.com/ciechanowiec/proidc</url>
<project.developer.name>Herman Ciechanowiec</project.developer.name>
<project.developer.email>herman@ciechanowiec.eu</project.developer.email>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Building properties -->
<java.version>25</java.version>
<fail-build-on-static-code-analysis-errors>true</fail-build-on-static-code-analysis-errors>
<enforce-tests-coverage>true</enforce-tests-coverage>
<!-- Dependencies -->
<commons-lang3.version>3.20.0</commons-lang3.version>
<spotbugs-annotations.version>4.9.8</spotbugs-annotations.version>
<spring-cloud.version>2025.0.0</spring-cloud.version>
<!-- Locking down Maven default plugins -->
<maven-site-plugin.version>3.21.0</maven-site-plugin.version>
<!-- Plugins -->
<min.maven.version>3.8.6</min.maven.version>
<maven-source-plugin.version>3.4.0</maven-source-plugin.version>
<versions-maven-plugin.version>2.18.0</versions-maven-plugin.version>
<maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version>
<checkstyle.version>13.3.0</checkstyle.version>
<maven-pmd-plugin.version>3.28.0</maven-pmd-plugin.version>
<spotbugs-maven-plugin.version>4.9.8.2</spotbugs-maven-plugin.version>
<jacoco-maven-plugin.version>0.8.14</jacoco-maven-plugin.version>
<jacoco-maven-plugin.coverage.minimum>0.8</jacoco-maven-plugin.coverage.minimum>
<maven-dependency-plugin.version>3.9.0</maven-dependency-plugin.version>
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
<central-publishing-maven-plugin.version>0.9.0</central-publishing-maven-plugin.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- ====================================================================== -->
<!-- SPRING BOOT -->
<!-- ====================================================================== -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
<scope>test</scope>
</dependency>
<!-- ====================================================================== -->
<!-- ETC -->
<!-- ====================================================================== -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
<dependency>
<!-- @SuppressFBWarnings annotation for SpotBugs: -->
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>${spotbugs-annotations.version}</version>
<optional>true</optional>
<!-- Although @SuppressFBWarnings annotation, for which this dependency is added,
has a CLASS retention policy, in fact it isn't required during runtime or
on the final classpath -->
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<!-- Describes the directory where the resources are stored.
The path is relative to the POM -->
<directory>src/main/resources</directory>
<excludes>
<exclude>static_code_analysis/**</exclude>
</excludes>
</resource>
</resources>
<pluginManagement>
<!-- Lock down plugins versions to avoid using Maven
defaults from the default Maven super-pom -->
<plugins>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<proc>full</proc>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-license-and-readme-to-jar</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>LICENSE.txt</include>
<include>README.adoc</include>
<include>README-docinfo.html</include>
<include>README-docinfo-footer.html</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>properties</goal>
</goals>
</execution>
<execution>
<id>analyze-dependencies</id>
<goals>
<goal>analyze</goal>
</goals>
<phase>package</phase>
<configuration>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<failIfNoTests>${enforce-tests-coverage}</failIfNoTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[${min.maven.version},)</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>display-parent-updates</goal>
<goal>display-property-updates</goal>
</goals>
</execution>
</executions>
<configuration>
<ruleSet>
<ignoreVersions>
<ignoreVersion>
<!-- Ignoring milestone versions, like 3.0.4-M5 and 1.0.0-m23 -->
<type>regex</type>
<version>(?i)[0-9].+-m[0-9]+</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring alpha versions, like 5.0.0.Alpha2 and 12.0.0.alpha3 -->
<type>regex</type>
<version>(?i).*ALPHA.*</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring beta versions, like 5.0.0.Beta2 and 12.0.0.beta3 -->
<type>regex</type>
<version>(?i).*BETA.*</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring preview versions, like 12.1.0.jre11-preview -->
<type>regex</type>
<version>(?i).*PREVIEW.*</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring candidate release versions, like 6.2.0.CR2 -->
<type>regex</type>
<version>(?i)[0-9].+\.CR[0-9]+</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring release candidate versions, like 2.16.1-rc1 and 1.8.20-RC -->
<type>regex</type>
<version>(?i)[0-9].+-rc[0-9]*</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring develop versions, like 15.0.0.Dev01 -->
<type>regex</type>
<version>(?i)[0-9].+\.dev[0-9]*</version>
</ignoreVersion>
<ignoreVersion>
<!-- Ignoring ongoing build numbers, like 2.5.0-b34 and 2.5.0-B34 -->
<type>regex</type>
<version>(?i)[0-9].+-b[0-9]+</version>
</ignoreVersion>
</ignoreVersions>
</ruleSet>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>${project.basedir}/src/main/resources/static_code_analysis/checkstyle.xml
</configLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>${fail-build-on-static-code-analysis-errors}</failsOnError>
<linkXRef>false</linkXRef>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>checkstyle</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
<configuration>
<rulesets>
<!-- For default rule sets see:
- https://github.com/pmd/pmd/tree/master/pmd-java/src/main/resources
- https://github.com/pmd/pmd/blob/master/pmd-core/src/main/resources/rulesets/internal/all-java.xml -->
<ruleset>${project.basedir}/src/main/resources/static_code_analysis/pmd.xml</ruleset>
</rulesets>
<failOnViolation>${fail-build-on-static-code-analysis-errors}</failOnViolation>
<verbose>true</verbose>
<includeTests>true</includeTests>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<excludeFilterFile>${project.basedir}/src/main/resources/static_code_analysis/spotbugs-exclude.xml
</excludeFilterFile>
<failOnError>${fail-build-on-static-code-analysis-errors}</failOnError>
<includeTests>true</includeTests>
<effort>Max</effort>
<!-- Low / Medium / High: -->
<threshold>Low</threshold>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Creates reports on tests coverage (target->site->jacoco->index.html)
and fails the build if the coverage is insufficient -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>check</id>
<phase>prepare-package</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<haltOnFailure>${enforce-tests-coverage}</haltOnFailure>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>${jacoco-maven-plugin.coverage.minimum}</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>${jacoco-maven-plugin.coverage.minimum}</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<failOnWarnings>${fail-build-on-static-code-analysis-errors}</failOnWarnings>
</configuration>
<executions>
<execution>
<id>put-javadoc-in-jar-archive</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>fail-build-on-static-code-analysis-errors-when-no-tests</id>
<activation>
<property>
<name>skipTests</name>
<value>true</value>
</property>
</activation>
<properties>
<fail-build-on-static-code-analysis-errors>false</fail-build-on-static-code-analysis-errors>
</properties>
</profile>
<profile>
<id>enforce-tests-coverage-when-no-tests</id>
<activation>
<property>
<name>skipTests</name>
<value>true</value>
</property>
</activation>
<properties>
<enforce-tests-coverage>false</enforce-tests-coverage>
</properties>
</profile>
<profile>
<id>advanced-dependency-resolution</id>
<activation>
<!-- By default, this profile is active and is disabled when the property below is present -->
<property>
<name>!skipAdvancedDependencyResolution</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
<executions>
<execution>
<id>download-sources</id>
<goals>
<goal>resolve-sources</goal>
</goals>
<phase>validate</phase>
<configuration>
<silent>true</silent>
</configuration>
</execution>
<execution>
<id>download-javadoc</id>
<goals>
<goal>resolve</goal>
</goals>
<phase>validate</phase>
<configuration>
<classifier>javadoc</classifier>
<silent>true</silent>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<signer>bc</signer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
<waitMaxTime>7200</waitMaxTime>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>