spring-security-saml2-service-provider.gradle 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. apply plugin: 'io.spring.convention.spring-module'
  2. configurations {
  3. opensaml4Main { extendsFrom(optional, provided) }
  4. opensaml5Main { extendsFrom(optional, provided) }
  5. opensaml4Test { extendsFrom(opensaml4Main, tests) }
  6. opensaml5Test { extendsFrom(opensaml5Main, tests) }
  7. }
  8. sourceSets {
  9. opensaml4Main {
  10. java {
  11. compileClasspath += main.output + configurations.opensaml4Main
  12. srcDir 'src/opensaml4Main/java'
  13. }
  14. }
  15. opensaml5Main {
  16. java {
  17. compileClasspath += main.output + configurations.opensaml5Main
  18. srcDir 'src/opensaml5Main/java'
  19. }
  20. }
  21. opensaml4Test {
  22. java {
  23. compileClasspath += main.output + test.output + opensaml4Main.output + configurations.opensaml4Test
  24. srcDir 'src/opensaml4Test/java'
  25. }
  26. }
  27. opensaml5Test {
  28. java {
  29. compileClasspath += main.output + test.output + opensaml5Main.output + configurations.opensaml5Test
  30. srcDir 'src/opensaml5Test/java'
  31. }
  32. }
  33. }
  34. sourceSets.configureEach { set ->
  35. if (!set.name.containsIgnoreCase("main")) {
  36. return
  37. }
  38. def from = copySpec {
  39. from("$projectDir/src/$set.name/java/org/springframework/security/saml2/internal")
  40. }
  41. copy {
  42. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/authentication/logout"
  43. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.authentication.logout") }
  44. with from
  45. }
  46. copy {
  47. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/authentication"
  48. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.authentication") }
  49. with from
  50. }
  51. copy {
  52. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/metadata"
  53. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.metadata") }
  54. with from
  55. }
  56. copy {
  57. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/web/authentication/logout"
  58. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.web.authentication.logout") }
  59. with from
  60. }
  61. copy {
  62. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/web/authentication"
  63. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.web.authentication") }
  64. with from
  65. }
  66. copy {
  67. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/web"
  68. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.web") }
  69. with from
  70. }
  71. copy {
  72. into "$projectDir/src/$set.name/java/org/springframework/security/saml2/provider/service/registration"
  73. filter { line -> line.replaceAll(".saml2.internal", ".saml2.provider.service.registration") }
  74. with from
  75. }
  76. }
  77. dependencies {
  78. management platform(project(":spring-security-dependencies"))
  79. api project(':spring-security-web')
  80. api 'org.opensaml:opensaml-core'
  81. api ('org.opensaml:opensaml-saml-api') {
  82. exclude group: 'commons-logging', module: 'commons-logging'
  83. }
  84. api ('org.opensaml:opensaml-saml-impl') {
  85. exclude group: 'commons-logging', module: 'commons-logging'
  86. }
  87. opensaml5MainImplementation libs.org.opensaml.opensaml5.core.api
  88. opensaml5MainImplementation libs.org.opensaml.opensaml5.core.impl
  89. opensaml5MainImplementation (libs.org.opensaml.opensaml5.saml.api) {
  90. exclude group: 'commons-logging', module: 'commons-logging'
  91. }
  92. opensaml5MainImplementation (libs.org.opensaml.opensaml5.saml.impl) {
  93. exclude group: 'commons-logging', module: 'commons-logging'
  94. }
  95. provided 'jakarta.servlet:jakarta.servlet-api'
  96. optional 'com.fasterxml.jackson.core:jackson-databind'
  97. testImplementation 'com.squareup.okhttp3:mockwebserver'
  98. testImplementation "org.assertj:assertj-core"
  99. testImplementation "org.skyscreamer:jsonassert"
  100. testImplementation "org.junit.jupiter:junit-jupiter-api"
  101. testImplementation "org.junit.jupiter:junit-jupiter-params"
  102. testImplementation "org.junit.jupiter:junit-jupiter-engine"
  103. testImplementation "org.mockito:mockito-core"
  104. testImplementation "org.mockito:mockito-junit-jupiter"
  105. testImplementation "org.springframework:spring-test"
  106. }
  107. jar {
  108. duplicatesStrategy = DuplicatesStrategy.EXCLUDE
  109. from sourceSets.opensaml4Main.output
  110. from sourceSets.opensaml5Main.output
  111. }
  112. sourcesJar {
  113. duplicatesStrategy = DuplicatesStrategy.EXCLUDE
  114. from sourceSets.opensaml4Main.allJava
  115. from sourceSets.opensaml5Main.allJava
  116. }
  117. testJar {
  118. duplicatesStrategy = DuplicatesStrategy.EXCLUDE
  119. from sourceSets.opensaml4Test.output
  120. from sourceSets.opensaml5Test.output
  121. }
  122. javadoc {
  123. classpath += sourceSets.opensaml4Main.runtimeClasspath + sourceSets.opensaml5Main.runtimeClasspath
  124. source += sourceSets.opensaml4Main.allJava + sourceSets.opensaml5Main.allJava
  125. }
  126. tasks.register("opensaml4Test", Test) {
  127. useJUnitPlatform()
  128. classpath += sourceSets.opensaml4Test.output
  129. }
  130. tasks.register("opensaml5Test", Test) {
  131. useJUnitPlatform()
  132. classpath += sourceSets.opensaml5Test.output
  133. }
  134. tasks.named("test") {
  135. dependsOn opensaml4Test
  136. dependsOn opensaml5Test
  137. }