Procházet zdrojové kódy

Merge branch '5.8.x' into 6.0.x

Marcus Da Coregio před 1 rokem
rodič
revize
c6841d83eb

+ 1 - 1
.github/workflows/continuous-integration-workflow.yml

@@ -83,7 +83,7 @@ jobs:
           export GRADLE_ENTERPRISE_CACHE_USERNAME="$GRADLE_ENTERPRISE_CACHE_USER"
           export GRADLE_ENTERPRISE_CACHE_PASSWORD="$GRADLE_ENTERPRISE_CACHE_PASSWORD"
           export GRADLE_ENTERPRISE_ACCESS_KEY="$GRADLE_ENTERPRISE_SECRET_ACCESS_KEY"
-          ./gradlew test --refresh-dependencies -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" -PforceMavenRepositories=snapshot -PspringVersion='5.+' -PreactorVersion='20+' -PspringDataVersion='Neumann-BUILD-SNAPSHOT' -PrsocketVersion=1.1.0-SNAPSHOT -PspringBootVersion=2.4.0-SNAPSHOT -PlocksDisabled --stacktrace
+          ./gradlew test --refresh-dependencies -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" -PforceMavenRepositories=snapshot -PisOverrideVersionCatalog -PspringVersion='5.+' -PreactorVersion='20+' -PspringDataVersion='Neumann-BUILD-SNAPSHOT' -PrsocketVersion=1.1.0-SNAPSHOT -PspringBootVersion=2.4.0-SNAPSHOT -PlocksDisabled --stacktrace
   check_samples:
     name: Check Samples project
     needs: [prerequisites]

+ 6 - 6
build.gradle

@@ -3,11 +3,11 @@ import trang.RncToXsd
 
 buildscript {
 	dependencies {
-		classpath "io.spring.javaformat:spring-javaformat-gradle-plugin:$springJavaformatVersion"
-		classpath 'io.spring.nohttp:nohttp-gradle:0.0.11'
-		classpath "io.freefair.gradle:aspectj-plugin:6.6-rc1"
-		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
-		classpath "com.netflix.nebula:nebula-project-plugin:8.2.0"
+		classpath libs.io.spring.javaformat.spring.javaformat.gradle.plugin
+		classpath libs.io.spring.nohttp.nohttp.gradle
+		classpath libs.io.freefair.gradle.aspectj.plugin
+		classpath libs.org.jetbrains.kotlin.kotlin.gradle.plugin
+		classpath libs.com.netflix.nebula.nebula.project.plugin
 	}
 	repositories {
 		maven { url 'https://plugins.gradle.org/m2/' }
@@ -142,7 +142,7 @@ allprojects {
 		pluginManager.withPlugin("io.spring.convention.checkstyle", { plugin ->
 			configure(plugin) {
 				dependencies {
-					checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:$springJavaformatVersion"
+					checkstyle libs.io.spring.javaformat.spring.javaformat.checkstyle
 				}
 				checkstyle {
 					toolVersion = '8.34'

+ 25 - 23
buildSrc/build.gradle

@@ -79,37 +79,39 @@ configurations {
 }
 
 dependencies {
-	implementation 'com.google.code.gson:gson:2.8.6'
-	implementation 'com.thaiopensource:trang:20091111'
-	implementation 'net.sourceforge.saxon:saxon:9.1.0.8'
-	implementation 'org.yaml:snakeyaml:1.30'
+	implementation platform(libs.io.projectreactor.reactor.bom)
+
+	implementation libs.com.google.code.gson.gson
+	implementation libs.com.thaiopensource.trag
+	implementation libs.net.sourceforge.saxon.saxon
+	implementation libs.org.yaml.snakeyaml
 	implementation localGroovy()
 
-	implementation 'io.github.gradle-nexus:publish-plugin:1.1.0'
-	implementation 'io.projectreactor:reactor-core:3.5.9'
-	implementation 'org.gretty:gretty:3.0.9'
-	implementation 'com.apollographql.apollo:apollo-runtime:2.4.5'
-	implementation 'com.github.ben-manes:gradle-versions-plugin:0.38.0'
-	implementation 'com.github.spullara.mustache.java:compiler:0.9.4'
-	implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15'
-	implementation 'io.spring.nohttp:nohttp-gradle:0.0.11'
-	implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0'
-	implementation 'org.hidetake:gradle-ssh-plugin:2.10.1'
-	implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0'
-	implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1'
+	implementation libs.io.github.gradle.nexus.publish.plugin
+	implementation 'io.projectreactor:reactor-core'
+	implementation libs.org.gretty.gretty
+	implementation libs.com.apollographql.apollo.apollo.runtime
+	implementation libs.com.github.ben.manes.gradle.versions.plugin
+	implementation libs.com.github.spullara.mustache.java.compiler
+	implementation libs.io.spring.javaformat.spring.javaformat.gradle.plugin
+	implementation libs.io.spring.nohttp.nohttp.gradle
+	implementation libs.net.sourceforge.htmlunit
+	implementation libs.org.hidetake.gradle.ssh.plugin
+	implementation libs.org.jfrog.buildinfo.build.info.extractor.gradle
+	implementation libs.org.sonarsource.scanner.gradle.sonarqube.gradle.plugin
 
-	testImplementation platform('org.junit:junit-bom:5.9.3')
+	testImplementation platform(libs.org.junit.junit.bom)
+	testImplementation platform(libs.org.mockito.mockito.bom)
 	testImplementation "org.junit.jupiter:junit-jupiter-api"
 	testImplementation "org.junit.jupiter:junit-jupiter-params"
 	testImplementation "org.junit.jupiter:junit-jupiter-engine"
-	testImplementation 'org.apache.commons:commons-io:1.3.2'
-	testImplementation 'org.assertj:assertj-core:3.13.2'
-	testImplementation 'org.mockito:mockito-core:3.12.4'
-	testImplementation 'org.mockito:mockito-junit-jupiter:3.12.4'
-	testImplementation "com.squareup.okhttp3:mockwebserver:3.14.9"
+	testImplementation libs.org.apache.commons.commons.io
+	testImplementation libs.org.assertj.assertj.core
+	testImplementation 'org.mockito:mockito-core'
+	testImplementation 'org.mockito:mockito-junit-jupiter'
+	testImplementation libs.com.squareup.okhttp3.mockwebserver
 }
 
-
 tasks.named('test', Test).configure {
 	onlyIf { !project.hasProperty("buildSrc.skipTests") }
 	useJUnitPlatform()

+ 7 - 0
buildSrc/settings.gradle

@@ -0,0 +1,7 @@
+dependencyResolutionManagement {
+	versionCatalogs {
+		libs {
+			from(files("../gradle/libs.versions.toml"))
+		}
+	}
+}

+ 5 - 2
buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy

@@ -18,6 +18,7 @@ package io.spring.gradle.convention
 
 import org.gradle.api.Plugin
 import org.gradle.api.Project
+import org.gradle.api.artifacts.VersionCatalogsExtension
 import org.gradle.api.plugins.JavaPlugin
 
 /**
@@ -31,12 +32,14 @@ class CheckstylePlugin implements Plugin<Project> {
 
 	@Override
 	void apply(Project project) {
+		def versionCatalog = project.rootProject.extensions.getByType(VersionCatalogsExtension.class)
+				.named("libs")
 		project.plugins.withType(JavaPlugin) {
 			def checkstyleDir = project.rootProject.file(CHECKSTYLE_DIR)
 			if (checkstyleDir.exists() && checkstyleDir.directory) {
 				project.getPluginManager().apply('checkstyle')
-				project.dependencies.add('checkstyle', 'io.spring.javaformat:spring-javaformat-checkstyle:0.0.15')
-				project.dependencies.add('checkstyle', 'io.spring.nohttp:nohttp-checkstyle:0.0.11')
+				project.dependencies.add('checkstyle', versionCatalog.findLibrary('io-spring-javaformat-spring-javaformat-checkstyle').get())
+				project.dependencies.add('checkstyle', versionCatalog.findLibrary('io-spring-nohttp-nohttp-checkstyle').get())
 
 				project.checkstyle {
 					configDirectory = checkstyleDir

+ 1 - 1
buildSrc/src/main/java/org/springframework/gradle/sagan/SaganCreateReleaseTask.java

@@ -19,13 +19,13 @@ package org.springframework.gradle.sagan;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.eclipse.core.runtime.Assert;
 import org.gradle.api.DefaultTask;
 import org.gradle.api.tasks.Input;
 import org.gradle.api.tasks.TaskAction;
 
 import org.springframework.gradle.github.user.GitHubUserApi;
 import org.springframework.gradle.github.user.User;
+import org.springframework.util.Assert;
 
 public class SaganCreateReleaseTask extends DefaultTask {
 

+ 72 - 66
dependencies/spring-security-dependencies.gradle

@@ -7,72 +7,78 @@ javaPlatform {
 }
 
 dependencies {
-	api platform("org.springframework:spring-framework-bom:$springFrameworkVersion")
-	api platform("io.projectreactor:reactor-bom:$reactorVersion")
-	api platform("io.rsocket:rsocket-bom:1.1.4")
-	api platform("org.junit:junit-bom:5.9.3")
-	api platform("org.mockito:mockito-bom:4.8.1")
-	api platform("org.springframework.data:spring-data-bom:2022.0.9")
-	api platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion")
-	api platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4")
-	api platform("com.fasterxml.jackson:jackson-bom:2.14.3")
+	if (project.hasProperty("isOverrideVersionCatalog")) {
+		def springFrameworkVersion = project.property("springFrameworkVersion")
+		def reactorVersion = project.property("reactorVersion")
+		def springDataVersion = project.property("springDataVersion")
+		api platform("org.springframework:spring-framework-bom:$springFrameworkVersion")
+		api platform("io.projectreactor:reactor-bom:$reactorVersion")
+		api platform("org.springframework.data:spring-data-bom:$springDataVersion")
+	} else {
+		api platform(libs.org.springframework.spring.framework.bom)
+		api platform(libs.io.projectreactor.reactor.bom)
+		api platform(libs.org.springframework.data.spring.data.bom)
+	}
+	api platform(libs.io.rsocket.rsocket.bom)
+	api platform(libs.org.junit.junit.bom)
+	api platform(libs.org.mockito.mockito.bom)
+	api platform(libs.org.jetbrains.kotlin.kotlin.bom)
+	api platform(libs.org.jetbrains.kotlinx.kotlinx.coroutines.bom)
+	api platform(libs.com.fasterxml.jackson.jackson.bom)
 	constraints {
-		api "ch.qos.logback:logback-classic:1.4.11"
-		api "com.google.inject:guice:3.0"
-		api "com.nimbusds:nimbus-jose-jwt:9.24.4"
-		api "com.nimbusds:oauth2-oidc-sdk:9.43.3"
-		api "com.squareup.okhttp3:mockwebserver:3.14.9"
-		api "com.squareup.okhttp3:okhttp:3.14.9"
-		api "com.unboundid:unboundid-ldapsdk:6.0.9"
-		api "commons-collections:commons-collections:3.2.2"
-		api "io.mockk:mockk:1.13.7"
-		api "io.micrometer:micrometer-observation:$micrometerVersion"
-		api "jakarta.annotation:jakarta.annotation-api:2.1.1"
-		api "jakarta.inject:jakarta.inject-api:2.0.1"
-		api "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0"
-		api "jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1"
-		api "jakarta.servlet:jakarta.servlet-api:6.0.0"
-		api "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0"
-		api "jakarta.persistence:jakarta.persistence-api:3.1.0"
-		api "jakarta.websocket:jakarta.websocket-api:2.1.1"
-		api "jakarta.websocket:jakarta.websocket-client-api:2.1.1"
-		api "ldapsdk:ldapsdk:4.1"
-		api "net.sourceforge.htmlunit:htmlunit:2.66.0"
-		api "org.apache.directory.server:apacheds-core-entry:1.5.5"
-		api "org.apache.directory.server:apacheds-core:1.5.5"
-		api "org.apache.directory.server:apacheds-protocol-ldap:1.5.5"
-		api "org.apache.directory.server:apacheds-protocol-shared:1.5.5"
-		api "org.apache.directory.server:apacheds-server-jndi:1.5.5"
-		api "org.apache.directory.shared:shared-ldap:0.9.15"
-		api "org.apache.httpcomponents:httpclient:4.5.14"
-		api "org.aspectj:aspectjrt:$aspectjVersion"
-		api "org.aspectj:aspectjweaver:$aspectjVersion"
-		api "org.assertj:assertj-core:3.24.2"
-		api "org.bouncycastle:bcpkix-jdk15on:1.70"
-		api "org.bouncycastle:bcprov-jdk15on:1.70"
-		api "org.eclipse.jetty:jetty-server:11.0.15"
-		api "org.eclipse.jetty:jetty-servlet:11.0.15"
-		api "jakarta.persistence:jakarta.persistence-api:3.1.0"
-		api "org.hamcrest:hamcrest:2.2"
-		api "org.hibernate.orm:hibernate-core:6.1.7.Final"
-		api "org.hsqldb:hsqldb:2.7.2"
-		api "org.jasig.cas.client:cas-client-core:3.6.4"
-		api "org.opensaml:opensaml-core:$openSamlVersion"
-		api "org.opensaml:opensaml-saml-api:$openSamlVersion"
-		api "org.opensaml:opensaml-saml-impl:$openSamlVersion"
-		api "org.python:jython:2.5.3"
-		api "org.seleniumhq.selenium:htmlunit-driver:2.66.0"
-		api "org.seleniumhq.selenium:selenium-java:3.141.59"
-		api "org.seleniumhq.selenium:selenium-support:3.141.59"
-		api "org.skyscreamer:jsonassert:1.5.1"
-		api "org.slf4j:log4j-over-slf4j:1.7.36"
-		api "org.slf4j:slf4j-api:2.0.7"
-		api "org.springframework.ldap:spring-ldap-core:3.0.5"
-		api "org.synchronoss.cloud:nio-multipart-parser:1.1.0"
-		api 'org.apache.maven.resolver:maven-resolver-connector-basic:1.8.2'
-		api 'org.apache.maven.resolver:maven-resolver-impl:1.8.2'
-		api 'org.apache.maven.resolver:maven-resolver-transport-http:1.8.2'
-		api 'org.apache.maven:maven-resolver-provider:3.8.8'
+		api libs.ch.qos.logback.logback.classic
+		api libs.com.google.inject.guice
+		api libs.com.nimbusds.nimbus.jose.jwt
+		api libs.com.nimbusds.oauth2.oidc.sdk
+		api libs.com.squareup.okhttp3.mockwebserver
+		api libs.com.squareup.okhttp3.okhttp
+		api libs.com.unboundid.unboundid.ldapsdk
+		api libs.commons.collections
+		api libs.io.mockk
+		api libs.io.micrometer.micrometer.observation
+		api libs.jakarta.annotation.jakarta.annotation.api
+		api libs.jakarta.inject.jakarta.inject.api
+		api libs.jakarta.servlet.jsp.jstl.jakarta.servlet.jsp.jstl.api
+		api libs.jakarta.servlet.jsp.jakarta.servlet.jsp.api
+		api libs.jakarta.servlet.jakarta.servlet.api
+		api libs.jakarta.xml.bind.jakarta.xml.bind.api
+		api libs.jakarta.persistence.jakarta.persistence.api
+		api libs.jakarta.websocket.jakarta.websocket.api
+		api libs.jakarta.websocket.jakarta.websocket.client.api
+		api libs.ldapsdk
+		api libs.net.sourceforge.htmlunit
+		api libs.org.apache.directory.server.apacheds.entry
+		api libs.org.apache.directory.server.apacheds.core
+		api libs.org.apache.directory.server.apacheds.protocol.ldap
+		api libs.org.apache.directory.server.apacheds.protocol.shared
+		api libs.org.apache.directory.server.apacheds.server.jndi
+		api libs.org.apache.directory.shared.shared.ldap
+		api libs.org.apache.httpcomponents.httpclient
+		api libs.org.aspectj.aspectjrt
+		api libs.org.aspectj.aspectjweaver
+		api libs.org.assertj.assertj.core
+		api libs.org.bouncycastle.bcpkix.jdk15on
+		api libs.org.bouncycastle.bcprov.jdk15on
+		api libs.org.eclipse.jetty.jetty.server
+		api libs.org.eclipse.jetty.jetty.servlet
+		api libs.org.hamcrest
+		api libs.org.hibernate.orm.hibernate.core
+		api libs.org.hsqldb
+		api libs.org.opensaml.opensaml.core
+		api libs.org.opensaml.opensaml.saml.api
+		api libs.org.opensaml.opensaml.saml.impl
+		api libs.org.python.jython
+		api libs.org.seleniumhq.selenium.htmlunit.driver
+		api libs.org.seleniumhq.selenium.selenium.java
+		api libs.org.seleniumhq.selenium.selenium.support
+		api libs.org.skyscreamer.jsonassert
+		api libs.org.slf4j.log4j.over.slf4j
+		api libs.org.slf4j.slf4j.api
+		api libs.org.springframework.ldap.spring.ldap.core
+		api libs.org.synchronoss.cloud.nio.multipart.parser
+		api libs.org.apache.maven.resolver.maven.resolver.connector.basic
+		api libs.org.apache.maven.resolver.maven.resolver.impl
+		api libs.org.apache.maven.resolver.maven.resolver.transport.http
+		api libs.org.apache.maven.maven.resolver.provider
 	}
 }
-

+ 7 - 0
docs/spring-security-docs.gradle

@@ -31,6 +31,13 @@ dependencies {
 }
 
 def generateAttributes() {
+	def springFrameworkVersion = libs.org.springframework.spring.framework.bom.get().versionConstraint.displayName
+	springFrameworkVersion = springFrameworkVersion.contains("-")
+			? springFrameworkVersion.substring(0, springFrameworkVersion.indexOf("-"))
+			: springFrameworkVersion
+	def springBootVersion = project.property("springBootVersion")
+	def samplesBranch = project.property("samplesBranch")
+
 	def docsTag = snapshotBuild ? 'current' : project.version
 	def ghTag = snapshotBuild ? 'main' : project.version
 	def ghUrl = "https://github.com/spring-projects/spring-security/tree/$ghTag"

+ 110 - 0
gradle/libs.versions.toml

@@ -0,0 +1,110 @@
+[versions]
+com-squareup-okhttp3 = "3.14.9"
+io-rsocket = "1.1.4"
+io-spring-javaformat = "0.0.39"
+io-spring-nohttp = "0.0.11"
+jakarta-websocket = "2.1.1"
+org-apache-directory-server = "1.5.5"
+org-apache-maven-resolver = "1.8.2"
+org-aspectj = "1.9.20"
+org-bouncycastle = "1.70"
+org-eclipse-jetty = "11.0.15"
+org-jetbrains-kotlin = "1.7.22"
+org-jetbrains-kotlinx = "1.6.4"
+org-junit-jupiter = "5.9.3"
+org-mockito = "4.8.1"
+org-opensaml = "4.1.1"
+org-springframework = "6.0.11"
+
+[libraries]
+ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.4.11"
+com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.14.3"
+com-google-inject-guice = "com.google.inject:guice:3.0"
+com-netflix-nebula-nebula-project-plugin = "com.netflix.nebula:nebula-project-plugin:8.2.0"
+com-nimbusds-nimbus-jose-jwt = "com.nimbusds:nimbus-jose-jwt:9.24.4"
+com-nimbusds-oauth2-oidc-sdk = "com.nimbusds:oauth2-oidc-sdk:9.43.3"
+com-squareup-okhttp3-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "com-squareup-okhttp3" }
+com-squareup-okhttp3-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "com-squareup-okhttp3" }
+com-unboundid-unboundid-ldapsdk = "com.unboundid:unboundid-ldapsdk:6.0.9"
+commons-collections = "commons-collections:commons-collections:3.2.2"
+io-freefair-gradle-aspectj-plugin = "io.freefair.gradle:aspectj-plugin:6.6-rc1"
+io-micrometer-micrometer-observation = "io.micrometer:micrometer-observation:1.10.10"
+io-mockk = "io.mockk:mockk:1.13.7"
+io-projectreactor-netty-reactor-netty = "io.projectreactor.netty:reactor-netty:1.1.10"
+io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2022.0.10"
+io-r2dbc-r2dbc-h2 = "io.r2dbc:r2dbc-h2:1.0.0.RELEASE"
+io-r2dbc-r2dbc-spi-test = "io.r2dbc:r2dbc-spi-test:0.9.1.RELEASE"
+io-rsocket-rsocket-bom = { module = "io.rsocket:rsocket-bom", version.ref = "io-rsocket" }
+io-spring-javaformat-spring-javaformat-checkstyle = { module = "io.spring.javaformat:spring-javaformat-checkstyle", version.ref = "io-spring-javaformat" }
+io-spring-javaformat-spring-javaformat-gradle-plugin = { module = "io.spring.javaformat:spring-javaformat-gradle-plugin", version.ref = "io-spring-javaformat" }
+io-spring-nohttp-nohttp-checkstyle = { module = "io.spring.nohttp:nohttp-checkstyle", version.ref = "io-spring-nohttp" }
+io-spring-nohttp-nohttp-gradle = { module = "io.spring.nohttp:nohttp-gradle", version.ref = "io-spring-nohttp" }
+jakarta-annotation-jakarta-annotation-api = "jakarta.annotation:jakarta.annotation-api:2.1.1"
+jakarta-inject-jakarta-inject-api = "jakarta.inject:jakarta.inject-api:2.0.1"
+jakarta-persistence-jakarta-persistence-api = "jakarta.persistence:jakarta.persistence-api:3.1.0"
+jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0"
+jakarta-servlet-jsp-jakarta-servlet-jsp-api = "jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1"
+jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0"
+jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" }
+jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" }
+jakarta-xml-bind-jakarta-xml-bind-api = "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0"
+ldapsdk = "ldapsdk:ldapsdk:4.1"
+net-sourceforge-htmlunit = "net.sourceforge.htmlunit:htmlunit:2.66.0"
+org-apache-directory-server-apacheds-core = { module = "org.apache.directory.server:apacheds-core", version.ref = "org-apache-directory-server" }
+org-apache-directory-server-apacheds-entry = { module = "org.apache.directory.server:apacheds-core-entry", version.ref = "org-apache-directory-server" }
+org-apache-directory-server-apacheds-protocol-ldap = { module = "org.apache.directory.server:apacheds-protocol-ldap", version.ref = "org-apache-directory-server" }
+org-apache-directory-server-apacheds-protocol-shared = { module = "org.apache.directory.server:apacheds-protocol-shared", version.ref = "org-apache-directory-server" }
+org-apache-directory-server-apacheds-server-jndi = { module = "org.apache.directory.server:apacheds-server-jndi", version.ref = "org-apache-directory-server" }
+org-apache-directory-shared-shared-ldap = "org.apache.directory.shared:shared-ldap:0.9.15"
+org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14"
+org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.1"
+org-apache-maven-maven-resolver-provider = "org.apache.maven:maven-resolver-provider:3.8.8"
+org-apache-maven-resolver-maven-resolver-connector-basic = { module = "org.apache.maven.resolver:maven-resolver-connector-basic", version.ref = "org-apache-maven-resolver" }
+org-apache-maven-resolver-maven-resolver-impl = { module = "org.apache.maven.resolver:maven-resolver-impl", version.ref = "org-apache-maven-resolver" }
+org-apache-maven-resolver-maven-resolver-transport-http = { module = "org.apache.maven.resolver:maven-resolver-transport-http", version.ref = "org-apache-maven-resolver" }
+org-aspectj-aspectjrt = { module = "org.aspectj:aspectjrt", version.ref = "org-aspectj" }
+org-aspectj-aspectjweaver = { module = "org.aspectj:aspectjweaver", version.ref = "org-aspectj" }
+org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2"
+org-bouncycastle-bcpkix-jdk15on = { module = "org.bouncycastle:bcpkix-jdk15on", version.ref = "org-bouncycastle" }
+org-bouncycastle-bcprov-jdk15on = { module = "org.bouncycastle:bcprov-jdk15on", version.ref = "org-bouncycastle" }
+org-eclipse-jetty-jetty-server = { module = "org.eclipse.jetty:jetty-server", version.ref = "org-eclipse-jetty" }
+org-eclipse-jetty-jetty-servlet = { module = "org.eclipse.jetty:jetty-servlet", version.ref = "org-eclipse-jetty" }
+org-hamcrest = "org.hamcrest:hamcrest:2.2"
+org-hibernate-orm-hibernate-core = "org.hibernate.orm:hibernate-core:6.1.7.Final"
+org-hsqldb = "org.hsqldb:hsqldb:2.7.2"
+org-jetbrains-kotlin-kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "org-jetbrains-kotlin" }
+org-jetbrains-kotlin-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "org-jetbrains-kotlin" }
+org-jetbrains-kotlinx-kotlinx-coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version.ref = "org-jetbrains-kotlinx" }
+org-junit-junit-bom = "org.junit:junit-bom:5.9.3"
+org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" }
+org-opensaml-opensaml-core = { module = "org.opensaml:opensaml-core", version.ref = "org-opensaml" }
+org-opensaml-opensaml-saml-api = { module = "org.opensaml:opensaml-saml-api", version.ref = "org-opensaml" }
+org-opensaml-opensaml-saml-impl = { module = "org.opensaml:opensaml-saml-impl", version.ref = "org-opensaml" }
+org-python-jython = "org.python:jython:2.5.3"
+org-seleniumhq-selenium-htmlunit-driver = "org.seleniumhq.selenium:htmlunit-driver:2.66.0"
+org-seleniumhq-selenium-selenium-java = "org.seleniumhq.selenium:selenium-java:3.141.59"
+org-seleniumhq-selenium-selenium-support = "org.seleniumhq.selenium:selenium-support:3.141.59"
+org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1"
+org-slf4j-log4j-over-slf4j = "org.slf4j:log4j-over-slf4j:1.7.36"
+org-slf4j-slf4j-api = "org.slf4j:slf4j-api:2.0.7"
+org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2022.0.9"
+org-springframework-ldap-spring-ldap-core = "org.springframework.ldap:spring-ldap-core:3.0.5"
+org-springframework-spring-framework-bom = { module = "org.springframework:spring-framework-bom", version.ref = "org-springframework" }
+org-synchronoss-cloud-nio-multipart-parser = "org.synchronoss.cloud:nio-multipart-parser:1.1.0"
+spring-io-github-changelog-generator = "spring-io:github-changelog-generator:0.0.6"
+
+com-google-code-gson-gson = "com.google.code.gson:gson:2.8.6"
+com-thaiopensource-trag = "com.thaiopensource:trang:20091111"
+net-sourceforge-saxon-saxon = "net.sourceforge.saxon:saxon:9.1.0.8"
+org-yaml-snakeyaml = "org.yaml:snakeyaml:1.30"
+org-apache-commons-commons-io = "org.apache.commons:commons-io:1.3.2"
+io-github-gradle-nexus-publish-plugin = "io.github.gradle-nexus:publish-plugin:1.1.0"
+org-gretty-gretty = "org.gretty:gretty:3.0.9"
+com-apollographql-apollo-apollo-runtime = "com.apollographql.apollo:apollo-runtime:2.4.5"
+com-github-ben-manes-gradle-versions-plugin = "com.github.ben-manes:gradle-versions-plugin:0.38.0"
+com-github-spullara-mustache-java-compiler = "com.github.spullara.mustache.java:compiler:0.9.4"
+org-hidetake-gradle-ssh-plugin = "org.hidetake:gradle-ssh-plugin:2.10.1"
+org-jfrog-buildinfo-build-info-extractor-gradle = "org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0"
+org-sonarsource-scanner-gradle-sonarqube-gradle-plugin = "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1"
+
+[plugins]