193 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Groovy
		
	
	
	
| import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 | |
| import org.springframework.gradle.xsd.CreateVersionlessXsdTask
 | |
| import trang.RncToXsd
 | |
| 
 | |
| apply plugin: 'io.spring.convention.spring-module'
 | |
| apply plugin: 'trang'
 | |
| apply plugin: 'kotlin'
 | |
| 
 | |
| configurations {
 | |
| 	opensaml5 {
 | |
| 		extendsFrom(optional, tests)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| dependencies {
 | |
| 	management platform(project(":spring-security-dependencies"))
 | |
| 	// NB: Don't add other compile time dependencies to the config module as this breaks tooling
 | |
| 	api project(':spring-security-core')
 | |
| 	api 'org.springframework:spring-aop'
 | |
| 	api 'org.springframework:spring-beans'
 | |
| 	api 'org.springframework:spring-context'
 | |
| 	api 'org.springframework:spring-core'
 | |
| 
 | |
| 	optional project(':spring-security-data')
 | |
| 	optional project(':spring-security-ldap')
 | |
| 	optional project(':spring-security-messaging')
 | |
| 	optional project(path: ':spring-security-saml2-service-provider')
 | |
| 	opensaml5 project(path: ':spring-security-saml2-service-provider', configuration: 'opensamlFiveMain')
 | |
| 	optional project(':spring-security-oauth2-client')
 | |
| 	optional project(':spring-security-oauth2-jose')
 | |
| 	optional project(':spring-security-oauth2-resource-server')
 | |
| 	optional project(':spring-security-rsocket')
 | |
| 	optional project(':spring-security-web')
 | |
| 	optional 'io.projectreactor:reactor-core'
 | |
| 	optional 'org.aspectj:aspectjweaver'
 | |
| 	optional 'org.springframework:spring-jdbc'
 | |
| 	optional 'org.springframework:spring-messaging'
 | |
| 	optional 'org.springframework:spring-tx'
 | |
| 	optional 'org.springframework:spring-webmvc'
 | |
| 	optional'org.springframework:spring-web'
 | |
| 	optional'org.springframework:spring-webflux'
 | |
| 	optional'org.springframework:spring-websocket'
 | |
| 	optional 'org.jetbrains.kotlin:kotlin-reflect'
 | |
| 	optional 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
 | |
| 	optional 'jakarta.annotation:jakarta.annotation-api'
 | |
| 	optional libs.webauthn4j.core
 | |
| 
 | |
| 	provided 'jakarta.servlet:jakarta.servlet-api'
 | |
| 
 | |
| 	testImplementation project(':spring-security-aspects')
 | |
| 	testImplementation project(':spring-security-cas')
 | |
| 	testImplementation project(':spring-security-test')
 | |
| 	testImplementation project(path : ':spring-security-core', configuration : 'tests')
 | |
| 	testImplementation project(path : ':spring-security-ldap', configuration : 'tests')
 | |
| 	testImplementation project(path : ':spring-security-oauth2-client', configuration : 'tests')
 | |
| 	testImplementation project(path : ':spring-security-oauth2-resource-server', configuration : 'tests')
 | |
| 	testImplementation project(':spring-security-saml2-service-provider')
 | |
| 	testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'tests')
 | |
| 	testImplementation project(path : ':spring-security-web', configuration : 'tests')
 | |
| 	testImplementation "jakarta.inject:jakarta.inject-api"
 | |
| 	testImplementation "org.assertj:assertj-core"
 | |
| 	testImplementation "org.junit.jupiter:junit-jupiter-api"
 | |
| 	testImplementation "org.junit.jupiter:junit-jupiter-params"
 | |
| 	testImplementation "org.junit.jupiter:junit-jupiter-engine"
 | |
| 	testImplementation "org.mockito:mockito-core"
 | |
| 	testImplementation "org.mockito:mockito-junit-jupiter"
 | |
| 	testImplementation "org.springframework:spring-test"
 | |
| 	testImplementation 'com.squareup.okhttp3:mockwebserver'
 | |
| 	testImplementation 'ch.qos.logback:logback-classic'
 | |
| 	testImplementation 'io.projectreactor.netty:reactor-netty'
 | |
| 	testImplementation 'io.rsocket:rsocket-transport-netty'
 | |
| 	testImplementation 'jakarta.annotation:jakarta.annotation-api'
 | |
| 	testImplementation 'jakarta.xml.bind:jakarta.xml.bind-api'
 | |
| 	testImplementation 'jakarta.websocket:jakarta.websocket-api'
 | |
| 	testImplementation 'jakarta.websocket:jakarta.websocket-client-api'
 | |
| 	testImplementation 'ldapsdk:ldapsdk:4.1'
 | |
| 	testImplementation('org.htmlunit:htmlunit') {
 | |
| 		exclude group: 'commons-logging', module: 'commons-logging'
 | |
| 		exclude group: 'xml-apis', module: 'xml-apis'
 | |
| 	}
 | |
| 	testImplementation "com.unboundid:unboundid-ldapsdk"
 | |
| 	testImplementation 'jakarta.persistence:jakarta.persistence-api'
 | |
| 	testImplementation "org.hibernate.orm:hibernate-core"
 | |
| 	testImplementation 'org.hsqldb:hsqldb'
 | |
| 	testImplementation 'org.mockito:mockito-core'
 | |
| 	testImplementation('org.seleniumhq.selenium:htmlunit3-driver') {
 | |
| 		exclude group: 'commons-logging', module: 'commons-logging'
 | |
| 		exclude group: 'xml-apis', module: 'xml-apis'
 | |
| 	}
 | |
| 	testImplementation('org.seleniumhq.selenium:selenium-java') {
 | |
| 		exclude group: 'commons-logging', module: 'commons-logging'
 | |
| 		exclude group: 'io.netty', module: 'netty'
 | |
| 	}
 | |
| 	testImplementation 'org.springframework.ldap:spring-ldap-core'
 | |
| 	testImplementation 'org.springframework:spring-expression'
 | |
| 	testImplementation 'org.springframework:spring-jdbc'
 | |
| 	testImplementation 'org.springframework:spring-orm'
 | |
| 	testImplementation 'org.springframework:spring-tx'
 | |
| 	testImplementation 'org.springframework:spring-core-test'
 | |
| 	testImplementation ('org.springframework.data:spring-data-jpa') {
 | |
| 		exclude group: 'org.aspectj', module: 'aspectjrt'
 | |
| 	}
 | |
| 	testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core'
 | |
| 	testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-reactor'
 | |
| 	testImplementation 'io.mockk:mockk'
 | |
| 	testImplementation 'org.junit.platform:junit-platform-launcher'
 | |
| 	testImplementation 'org.apache.maven.resolver:maven-resolver-connector-basic'
 | |
| 	testImplementation ('org.apache.maven.resolver:maven-resolver-impl') {
 | |
| 		exclude(group: "javax.annotation", module: "javax.annotation-api")
 | |
| 	}
 | |
| 	testImplementation ('org.apache.maven:maven-resolver-provider') {
 | |
| 		exclude(group: "javax.inject", module: "javax.inject")
 | |
| 		exclude(group: "javax.annotation", module: "javax.annotation-api")
 | |
| 	}
 | |
| 	testImplementation ('org.apache.maven.resolver:maven-resolver-transport-http') {
 | |
| 		exclude group: "org.slf4j", module: "jcl-over-slf4j"
 | |
| 	}
 | |
| 	testImplementation libs.org.instancio.instancio.junit
 | |
| 	testImplementation libs.org.eclipse.jetty.jetty.server
 | |
| 	testImplementation libs.org.eclipse.jetty.jetty.servlet
 | |
| 
 | |
| 	testRuntimeOnly 'org.hsqldb:hsqldb'
 | |
| 	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
 | |
| 	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
 | |
| }
 | |
| 
 | |
| def rncToXsd = tasks.named('rncToXsd', RncToXsd)
 | |
| rncToXsd.configure {
 | |
| 	rncDir = file('src/main/resources/org/springframework/security/config/')
 | |
| 	xsdDir = rncDir
 | |
| 	xslFile = new File(rncDir, 'spring-security.xsl')
 | |
| }
 | |
| 
 | |
| def versionlessXsd = tasks.register("versionlessXsd", CreateVersionlessXsdTask) {
 | |
| 	inputFiles.from(rncToXsd.map { task -> project.fileTree(task.xsdDir) })
 | |
| 	versionlessXsdFile = project.layout.buildDirectory.file("versionlessXsd/spring-security.xsd")
 | |
| }
 | |
| 
 | |
| tasks.named('processResources', ProcessResources).configure {
 | |
| 	from(versionlessXsd) {
 | |
| 		into 'org/springframework/security/config/'
 | |
| 	}
 | |
| 	from(rncToXsd) {
 | |
| 		duplicatesStrategy DuplicatesStrategy.EXCLUDE
 | |
| 		into 'org/springframework/security/config/'
 | |
| 	}
 | |
| }
 | |
| 
 | |
| tasks.named('sourcesJar', Jar).configure {
 | |
| 	from(rncToXsd) {
 | |
| 		duplicatesStrategy DuplicatesStrategy.EXCLUDE
 | |
| 		into 'org/springframework/security/config/'
 | |
| 	}
 | |
| }
 | |
| 
 | |
| tasks.withType(KotlinCompile).configureEach {
 | |
| 	kotlinOptions {
 | |
| 		languageVersion = "1.7"
 | |
| 		apiVersion = "1.7"
 | |
| 		freeCompilerArgs = ["-Xjsr305=strict", "-Xsuppress-version-warnings"]
 | |
| 		jvmTarget = "17"
 | |
| 	}
 | |
| }
 | |
| 
 | |
| configure(project.tasks.withType(Test)) {
 | |
| 	doFirst {
 | |
| 		systemProperties['springSecurityVersion'] = version
 | |
| 	}
 | |
| }
 | |
| 
 | |
| test {
 | |
| 	onOutput { descriptor, event ->
 | |
| 		if (!project.hasProperty('serialization')) {
 | |
| 			return
 | |
| 		}
 | |
| 		if (descriptor.name=='listClassesMissingSerialVersion()') {
 | |
| 			logger.lifecycle(event.message)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| tasks.register("opensaml5Test", Test) {
 | |
| 	filter {
 | |
| 		includeTestsMatching "org.springframework.security.config.annotation.web.configurers.saml2.*"
 | |
| 	}
 | |
| 	useJUnitPlatform()
 | |
| 	classpath = sourceSets.main.output + sourceSets.test.output + configurations.opensaml5
 | |
| }
 | |
| 
 | |
| tasks.named("check") {
 | |
| 	dependsOn opensaml5Test
 | |
| }
 |