You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
7.9 KiB
198 lines
7.9 KiB
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 "org.apache.directory.server:apacheds-core" |
|
testImplementation "org.apache.directory.server:apacheds-core-entry" |
|
testImplementation "org.apache.directory.server:apacheds-protocol-shared" |
|
testImplementation "org.apache.directory.server:apacheds-protocol-ldap" |
|
testImplementation "org.apache.directory.server:apacheds-server-jndi" |
|
testImplementation 'org.apache.directory.shared:shared-ldap' |
|
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 |
|
}
|
|
|