| 
									
										
										
										
											2013-06-21 00:40:54 +08:00
										 |  |  | buildscript { | 
					
						
							| 
									
										
										
										
											2015-03-24 00:14:26 +08:00
										 |  |  | 	dependencies { | 
					
						
							| 
									
										
										
										
											2020-07-24 05:15:24 +08:00
										 |  |  | 		classpath "io.spring.javaformat:spring-javaformat-gradle-plugin:$springJavaformatVersion" | 
					
						
							| 
									
										
										
										
											2021-05-15 00:55:41 +08:00
										 |  |  | 		classpath 'io.spring.nohttp:nohttp-gradle:0.0.8' | 
					
						
							| 
									
										
										
										
											2021-04-09 01:16:24 +08:00
										 |  |  | 		classpath "io.freefair.gradle:aspectj-plugin:5.3.3.3" | 
					
						
							| 
									
										
										
										
											2020-01-08 01:08:43 +08:00
										 |  |  | 		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" | 
					
						
							| 
									
										
										
										
											2021-05-18 04:51:12 +08:00
										 |  |  | 		classpath "com.netflix.nebula:nebula-project-plugin:8.0.0" | 
					
						
							| 
									
										
										
										
											2015-03-24 00:14:26 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	repositories { | 
					
						
							| 
									
										
										
										
											2021-02-11 02:00:39 +08:00
										 |  |  | 		maven { url 'https://repo.spring.io/plugins-snapshot' } | 
					
						
							| 
									
										
										
										
											2018-10-16 07:05:40 +08:00
										 |  |  | 		maven { url 'https://plugins.gradle.org/m2/' } | 
					
						
							| 
									
										
										
										
											2015-03-24 00:14:26 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2010-08-25 01:27:44 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2020-01-08 01:08:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-29 00:08:57 +08:00
										 |  |  | apply plugin: 'io.spring.nohttp' | 
					
						
							| 
									
										
										
										
											2019-12-17 00:45:15 +08:00
										 |  |  | apply plugin: 'locks' | 
					
						
							| 
									
										
										
										
											2017-03-29 04:45:30 +08:00
										 |  |  | apply plugin: 'io.spring.convention.root' | 
					
						
							| 
									
										
										
										
											2020-01-08 01:08:43 +08:00
										 |  |  | apply plugin: 'org.jetbrains.kotlin.jvm' | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | apply plugin: 'org.springframework.security.update-dependencies' | 
					
						
							| 
									
										
										
										
											2021-04-08 06:57:57 +08:00
										 |  |  | apply plugin: 'org.springframework.security.sagan' | 
					
						
							| 
									
										
										
										
											2021-04-08 10:23:44 +08:00
										 |  |  | apply plugin: 'org.springframework.github.milestone' | 
					
						
							| 
									
										
										
										
											2021-05-01 03:06:39 +08:00
										 |  |  | apply plugin: 'org.springframework.github.changelog' | 
					
						
							| 
									
										
										
										
											2010-08-25 01:27:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-29 04:45:30 +08:00
										 |  |  | group = 'org.springframework.security' | 
					
						
							|  |  |  | description = 'Spring Security' | 
					
						
							| 
									
										
										
										
											2010-07-08 05:40:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-29 04:45:30 +08:00
										 |  |  | ext.snapshotBuild = version.contains("SNAPSHOT") | 
					
						
							|  |  |  | ext.releaseBuild = version.contains("SNAPSHOT") | 
					
						
							|  |  |  | ext.milestoneBuild = !(snapshotBuild || releaseBuild) | 
					
						
							| 
									
										
										
										
											2017-05-09 00:56:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-29 00:08:57 +08:00
										 |  |  | repositories { | 
					
						
							| 
									
										
										
										
											2019-05-02 09:08:26 +08:00
										 |  |  | 	mavenCentral() | 
					
						
							| 
									
										
										
										
											2019-03-29 00:08:57 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-08 06:57:57 +08:00
										 |  |  | tasks.named("saganCreateRelease") { | 
					
						
							|  |  |  | 	referenceDocUrl = "https://docs.spring.io/spring-security/site/docs/{version}/reference/html5/" | 
					
						
							|  |  |  | 	apiDocUrl = "https://docs.spring.io/spring-security/site/docs/{version}/api/" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-08 10:23:44 +08:00
										 |  |  | tasks.named("gitHubCheckMilestoneHasNoOpenIssues") { | 
					
						
							|  |  |  | 	repository { | 
					
						
							|  |  |  | 		owner = "spring-projects" | 
					
						
							|  |  |  | 		name = "spring-security" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-04 03:01:04 +08:00
										 |  |  | tasks.named("updateDependencies") { | 
					
						
							|  |  |  | 	// we aren't Gradle 7 compatible yet
 | 
					
						
							|  |  |  | 	checkForGradleUpdate = false | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | updateDependenciesSettings { | 
					
						
							|  |  |  | 	gitHub { | 
					
						
							| 
									
										
										
										
											2021-04-06 10:57:34 +08:00
										 |  |  | 		organization = "spring-projects" | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | 		repository = "spring-security" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	addFiles({ | 
					
						
							|  |  |  | 		return [ | 
					
						
							|  |  |  | 				project.file("buildSrc/src/main/java/io/spring/gradle/convention/AsciidoctorConventionPlugin.java"), | 
					
						
							|  |  |  | 				project.file("buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy") | 
					
						
							|  |  |  | 		] | 
					
						
							|  |  |  | 	}) | 
					
						
							|  |  |  | 	dependencyExcludes { | 
					
						
							|  |  |  | 		majorVersionBump() | 
					
						
							| 
									
										
										
										
											2021-05-04 00:27:58 +08:00
										 |  |  | 		minorVersionBump() | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | 		alphaBetaVersions() | 
					
						
							|  |  |  | 		releaseCandidatesVersions() | 
					
						
							|  |  |  | 		milestoneVersions() | 
					
						
							|  |  |  | 		snapshotVersions() | 
					
						
							| 
									
										
										
										
											2021-04-06 04:05:58 +08:00
										 |  |  | 		addRule { components -> | 
					
						
							|  |  |  | 			components.withModule("commons-codec:commons-codec") { selection -> | 
					
						
							|  |  |  | 				ModuleComponentIdentifier candidate = selection.getCandidate(); | 
					
						
							|  |  |  | 				if (!candidate.getVersion().equals(selection.getCurrentVersion())) { | 
					
						
							|  |  |  | 					selection.reject("commons-codec updates break saml tests"); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-04-06 04:23:52 +08:00
										 |  |  | 			components.withModule("org.python:jython") { selection -> | 
					
						
							|  |  |  | 				ModuleComponentIdentifier candidate = selection.getCandidate(); | 
					
						
							|  |  |  | 				if (!candidate.getVersion().equals(selection.getCurrentVersion())) { | 
					
						
							|  |  |  | 					selection.reject("jython updates break integration tests"); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-04-06 04:27:25 +08:00
										 |  |  | 			components.withModule("com.nimbusds:nimbus-jose-jwt") { selection -> | 
					
						
							|  |  |  | 				ModuleComponentIdentifier candidate = selection.getCandidate(); | 
					
						
							|  |  |  | 				if (!candidate.getVersion().equals(selection.getCurrentVersion())) { | 
					
						
							|  |  |  | 					selection.reject("nimbus-jose-jwt gets updated when oauth2-oidc-sdk is updated to ensure consistency"); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-04-06 10:56:30 +08:00
										 |  |  | 			components.all { selection -> | 
					
						
							|  |  |  | 				ModuleComponentIdentifier candidate = selection.getCandidate(); | 
					
						
							|  |  |  | 				// Do not compare version due to multiple versions existing
 | 
					
						
							|  |  |  | 				// will cause opensaml 3.x to be updated to 4.x
 | 
					
						
							|  |  |  | 				if (candidate.getGroup().equals("org.opensaml")) { | 
					
						
							|  |  |  | 					selection.reject("org.opensaml maintains two different versions, so it must be updated manually"); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-04-06 04:05:58 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-27 09:01:40 +08:00
										 |  |  | subprojects { | 
					
						
							|  |  |  | 	plugins.withType(JavaPlugin) { | 
					
						
							|  |  |  | 		project.sourceCompatibility='1.8' | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2019-08-13 05:19:03 +08:00
										 |  |  | 	tasks.withType(JavaCompile) { | 
					
						
							| 
									
										
										
										
											2019-08-14 04:20:21 +08:00
										 |  |  | 		options.encoding = "UTF-8" | 
					
						
							| 
									
										
										
										
											2019-08-13 05:19:03 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2018-03-27 09:01:40 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2020-06-10 23:08:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-24 05:15:24 +08:00
										 |  |  | allprojects { | 
					
						
							| 
									
										
										
										
											2020-09-09 23:16:07 +08:00
										 |  |  | 	if (!['spring-security-bom', 'spring-security-docs'].contains(project.name)) { | 
					
						
							|  |  |  | 		apply plugin: 'io.spring.javaformat' | 
					
						
							|  |  |  | 		apply plugin: 'checkstyle' | 
					
						
							| 
									
										
										
										
											2020-07-25 02:37:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-09 23:16:07 +08:00
										 |  |  | 		pluginManager.withPlugin("io.spring.convention.checkstyle", { plugin -> | 
					
						
							|  |  |  | 			configure(plugin) { | 
					
						
							|  |  |  | 				dependencies { | 
					
						
							|  |  |  | 					checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:$springJavaformatVersion" | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				checkstyle { | 
					
						
							|  |  |  | 					toolVersion = '8.34' | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2020-07-25 02:37:53 +08:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2020-09-09 23:16:07 +08:00
										 |  |  | 		}) | 
					
						
							| 
									
										
										
										
											2020-07-25 02:37:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-09 23:16:07 +08:00
										 |  |  | 		if (project.name.contains('sample')) { | 
					
						
							|  |  |  | 			tasks.whenTaskAdded { task -> | 
					
						
							|  |  |  | 				if (task.name.contains('format') || task.name.contains('checkFormat') || task.name.contains("checkstyle")) { | 
					
						
							|  |  |  | 					task.enabled = false | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2020-07-24 05:15:24 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-30 22:20:12 +08:00
										 |  |  | if (hasProperty('buildScan')) { | 
					
						
							|  |  |  | 	buildScan { | 
					
						
							|  |  |  | 		termsOfServiceUrl = 'https://gradle.com/terms-of-service' | 
					
						
							|  |  |  | 		termsOfServiceAgree = 'yes' | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-10 23:08:31 +08:00
										 |  |  | nohttp { | 
					
						
							|  |  |  | 	allowlistFile = project.file("etc/nohttp/allowlist.lines") | 
					
						
							| 
									
										
										
										
											2021-04-03 02:13:07 +08:00
										 |  |  | 	source.exclude "buildSrc/build/**" | 
					
						
							| 
									
										
										
										
											2021-04-05 23:16:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-10 23:08:31 +08:00
										 |  |  | } |