spring-security-config.gradle 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
  2. apply plugin: 'io.spring.convention.spring-module'
  3. apply plugin: 'trang'
  4. apply plugin: 'kotlin'
  5. dependencies {
  6. management platform(project(":spring-security-dependencies"))
  7. // NB: Don't add other compile time dependencies to the config module as this breaks tooling
  8. api project(':spring-security-core')
  9. api 'org.springframework:spring-aop'
  10. api 'org.springframework:spring-beans'
  11. api 'org.springframework:spring-context'
  12. api 'org.springframework:spring-core'
  13. optional project(':spring-security-ldap')
  14. optional project(':spring-security-messaging')
  15. optional project(':spring-security-saml2-service-provider')
  16. optional project(':spring-security-oauth2-client')
  17. optional project(':spring-security-oauth2-jose')
  18. optional project(':spring-security-oauth2-resource-server')
  19. optional project(':spring-security-openid')
  20. optional project(':spring-security-rsocket')
  21. optional project(':spring-security-web')
  22. optional 'io.projectreactor:reactor-core'
  23. optional 'org.aspectj:aspectjweaver'
  24. optional 'org.springframework:spring-jdbc'
  25. optional 'org.springframework:spring-messaging'
  26. optional 'org.springframework:spring-tx'
  27. optional 'org.springframework:spring-webmvc'
  28. optional'org.springframework:spring-web'
  29. optional'org.springframework:spring-webflux'
  30. optional'org.springframework:spring-websocket'
  31. optional 'org.jetbrains.kotlin:kotlin-reflect'
  32. optional 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
  33. optional 'jakarta.annotation:jakarta.annotation-api'
  34. provided 'jakarta.servlet:jakarta.servlet-api'
  35. testImplementation project(':spring-security-aspects')
  36. testImplementation project(':spring-security-cas')
  37. testImplementation project(':spring-security-test')
  38. testImplementation project(path : ':spring-security-core', configuration : 'tests')
  39. testImplementation project(path : ':spring-security-ldap', configuration : 'tests')
  40. testImplementation project(path : ':spring-security-oauth2-client', configuration : 'tests')
  41. testImplementation project(path : ':spring-security-oauth2-resource-server', configuration : 'tests')
  42. testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'tests')
  43. testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'opensaml4MainImplementation')
  44. testImplementation project(path : ':spring-security-web', configuration : 'tests')
  45. testImplementation "org.assertj:assertj-core"
  46. testImplementation "org.junit.jupiter:junit-jupiter-api"
  47. testImplementation "org.junit.jupiter:junit-jupiter-params"
  48. testImplementation "org.junit.jupiter:junit-jupiter-engine"
  49. testImplementation "org.mockito:mockito-core"
  50. testImplementation "org.mockito:mockito-junit-jupiter"
  51. testImplementation "org.springframework:spring-test"
  52. testImplementation 'com.squareup.okhttp3:mockwebserver'
  53. testImplementation 'ch.qos.logback:logback-classic'
  54. testImplementation 'io.projectreactor.netty:reactor-netty'
  55. testImplementation 'io.rsocket:rsocket-transport-netty'
  56. testImplementation 'jakarta.annotation:jakarta.annotation-api:1.0'
  57. testImplementation "jakarta.inject:jakarta.inject-api"
  58. testImplementation "jakarta.transaction:jakarta.transaction-api"
  59. testImplementation 'jakarta.xml.bind:jakarta.xml.bind-api'
  60. testImplementation 'ldapsdk:ldapsdk:4.1'
  61. testImplementation('net.sourceforge.htmlunit:htmlunit') {
  62. exclude group: 'commons-logging', module: 'commons-logging'
  63. }
  64. testImplementation "org.apache.directory.server:apacheds-core"
  65. testImplementation "org.apache.directory.server:apacheds-core-entry"
  66. testImplementation "org.apache.directory.server:apacheds-protocol-shared"
  67. testImplementation "org.apache.directory.server:apacheds-protocol-ldap"
  68. testImplementation "org.apache.directory.server:apacheds-server-jndi"
  69. testImplementation 'org.apache.directory.shared:shared-ldap'
  70. testImplementation "com.unboundid:unboundid-ldapsdk"
  71. testImplementation 'org.eclipse.persistence:javax.persistence'
  72. testImplementation('org.hibernate:hibernate-entitymanager') {
  73. exclude group: 'javax.activation', module: 'javax.activation-api'
  74. exclude group: 'javax.persistence', module: 'javax.persistence-api'
  75. exclude group: 'javax.xml.bind', module: 'jaxb-api'
  76. exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.2_spec'
  77. }
  78. testImplementation 'org.hsqldb:hsqldb'
  79. testImplementation 'org.mockito:mockito-core'
  80. testImplementation "org.mockito:mockito-inline"
  81. testImplementation ('org.openid4java:openid4java-nodeps') {
  82. exclude group: 'com.google.code.guice', module: 'guice'
  83. exclude group: 'commons-logging', module: 'commons-logging'
  84. }
  85. testImplementation('org.seleniumhq.selenium:htmlunit-driver') {
  86. exclude group: 'commons-logging', module: 'commons-logging'
  87. }
  88. testImplementation('org.seleniumhq.selenium:selenium-java') {
  89. exclude group: 'commons-logging', module: 'commons-logging'
  90. exclude group: 'io.netty', module: 'netty'
  91. }
  92. testImplementation 'org.springframework.ldap:spring-ldap-core'
  93. testImplementation 'org.springframework:spring-expression'
  94. testImplementation 'org.springframework:spring-jdbc'
  95. testImplementation 'org.springframework:spring-orm'
  96. testImplementation 'org.springframework:spring-tx'
  97. testImplementation ('org.springframework.data:spring-data-jpa') {
  98. exclude group: 'org.aspectj', module: 'aspectjrt'
  99. }
  100. testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core'
  101. testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-reactor'
  102. testImplementation 'io.mockk:mockk'
  103. testRuntimeOnly 'org.hsqldb:hsqldb'
  104. }
  105. rncToXsd {
  106. rncDir = file('src/main/resources/org/springframework/security/config/')
  107. xsdDir = rncDir
  108. xslFile = new File(rncDir, 'spring-security.xsl')
  109. }
  110. tasks.withType(KotlinCompile).configureEach {
  111. kotlinOptions {
  112. languageVersion = "1.3"
  113. apiVersion = "1.3"
  114. freeCompilerArgs = ["-Xjsr305=strict", "-Xsuppress-version-warnings"]
  115. jvmTarget = "1.8"
  116. }
  117. }
  118. build.dependsOn rncToXsd
  119. compileTestJava {
  120. exclude "org/springframework/security/config/annotation/web/configurers/saml2/**", "org/springframework/security/config/http/Saml2*"
  121. }
  122. task compileSaml2TestJava(type: JavaCompile) {
  123. javaCompiler = javaToolchains.compilerFor {
  124. languageVersion = JavaLanguageVersion.of(11)
  125. }
  126. source = sourceSets.test.java.srcDirs
  127. include "org/springframework/security/config/annotation/web/configurers/saml2/**", "org/springframework/security/config/http/Saml2*"
  128. classpath = sourceSets.test.compileClasspath
  129. destinationDirectory = new File("${buildDir}/classes/java/test")
  130. options.sourcepath = sourceSets.test.java.getSourceDirectories()
  131. }
  132. task saml2Tests(type: Test) {
  133. javaLauncher = javaToolchains.launcherFor {
  134. languageVersion = JavaLanguageVersion.of(11)
  135. }
  136. filter {
  137. includeTestsMatching "org.springframework.security.config.annotation.web.configurers.saml2.*"
  138. }
  139. useJUnitPlatform()
  140. dependsOn compileSaml2TestJava
  141. }
  142. test {
  143. shouldRunAfter saml2Tests
  144. }
  145. tasks.named('check') {
  146. dependsOn saml2Tests
  147. }