瀏覽代碼

SEC-1689: Re-instate crypto as separate library (for use in non-Spring Security apps), as well as packaging with core.

Luke Taylor 14 年之前
父節點
當前提交
e27f655e9d
共有 31 個文件被更改,包括 48 次插入11 次删除
  1. 16 2
      buildSrc/src/main/groovy/bundlor/BundlorPlugin.groovy
  2. 18 8
      core/core.gradle
  3. 12 0
      crypto/crypto.gradle
  4. 0 0
      crypto/src/main/java/org/springframework/security/crypto/codec/Base64.java
  5. 0 0
      crypto/src/main/java/org/springframework/security/crypto/codec/Hex.java
  6. 0 0
      crypto/src/main/java/org/springframework/security/crypto/codec/Utf8.java
  7. 0 0
      crypto/src/main/java/org/springframework/security/crypto/codec/package-info.java
  8. 0 0
      crypto/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java
  9. 0 0
      crypto/src/main/java/org/springframework/security/crypto/encrypt/BytesEncryptor.java
  10. 0 0
      crypto/src/main/java/org/springframework/security/crypto/encrypt/CipherUtils.java
  11. 0 0
      crypto/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java
  12. 0 0
      crypto/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java
  13. 0 0
      crypto/src/main/java/org/springframework/security/crypto/encrypt/TextEncryptor.java
  14. 0 0
      crypto/src/main/java/org/springframework/security/crypto/keygen/BytesKeyGenerator.java
  15. 0 0
      crypto/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java
  16. 0 0
      crypto/src/main/java/org/springframework/security/crypto/keygen/KeyGenerators.java
  17. 0 0
      crypto/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java
  18. 0 0
      crypto/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java
  19. 0 0
      crypto/src/main/java/org/springframework/security/crypto/keygen/StringKeyGenerator.java
  20. 0 0
      crypto/src/main/java/org/springframework/security/crypto/password/Digester.java
  21. 0 0
      crypto/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java
  22. 0 0
      crypto/src/main/java/org/springframework/security/crypto/password/PasswordEncoder.java
  23. 0 0
      crypto/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java
  24. 0 0
      crypto/src/main/java/org/springframework/security/crypto/util/EncodingUtils.java
  25. 0 0
      crypto/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java
  26. 0 0
      crypto/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java
  27. 0 0
      crypto/src/test/java/org/springframework/security/crypto/keygen/KeyGeneratorsTests.java
  28. 0 0
      crypto/src/test/java/org/springframework/security/crypto/password/DigesterTests.java
  29. 0 0
      crypto/src/test/java/org/springframework/security/crypto/password/StandardPasswordEncoderTests.java
  30. 0 0
      crypto/src/test/java/org/springframework/security/crypto/util/EncodingUtilsTests.java
  31. 2 1
      settings.gradle

+ 16 - 2
buildSrc/src/main/groovy/bundlor/BundlorPlugin.groovy

@@ -45,6 +45,7 @@ class BundlorPlugin implements Plugin<Project> {
 
 public class Bundlor extends DefaultTask {
     @InputFile
+    @Optional
     File manifestTemplate
 
     @OutputDirectory
@@ -69,13 +70,26 @@ public class Bundlor extends DefaultTask {
 
     Bundlor() {
         manifestTemplate = new File(project.projectDir, 'template.mf')
+
+        if (!manifestTemplate.exists()) {
+            logger.info("No bundlor template for project " + project.name)
+            manifestTemplate = null
+        }
+
         inputPaths = project.files(project.sourceSets.main.classesDir)
-        project.jar.manifest.from manifest
-        project.jar.inputs.files manifest
+
+        if (manifestTemplate != null) {
+            project.jar.manifest.from manifest
+            project.jar.inputs.files manifest
+        }
     }
 
     @TaskAction
     void createManifest() {
+        if (manifestTemplate == null) {
+            return;
+        }
+
         logging.captureStandardOutput(LogLevel.INFO)
 
         project.mkdir(bundlorDir)

+ 18 - 8
core/core.gradle

@@ -1,5 +1,9 @@
 // Core build file
 
+// We don't define a module dependency on crypto to avoid creating a transitive dependency
+def cryptoProject = project(':spring-security-crypto')
+def cryptoClasses = cryptoProject.sourceSets.main.classes
+
 dependencies {
     compile 'aopalliance:aopalliance:1.0',
             "net.sf.ehcache:ehcache:$ehcacheVersion",
@@ -20,16 +24,22 @@ dependencies {
                 "cglib:cglib-nodep:$cglibVersion"
 }
 
-// jdkVersion = System.properties['java.version']
-// isJdk6 = jdkVersion >= '1.6'
-int maxAESKeySize = javax.crypto.Cipher.getMaxAllowedKeyLength('AES')
+compileJava.dependsOn cryptoProject.compileJava
+classes.dependsOn cryptoProject.classes
+
+classes.doLast {
+    copy {
+        from cryptoClasses
+        into sourceSets.main.classesDir
+    }
+}
+
+sourceSets.main.compileClasspath += cryptoClasses
+sourceSets.test.compileClasspath += cryptoClasses
+
+sourceJar.from cryptoProject.sourceSets.main.java
 
 test {
     systemProperties['springSecurityVersion'] = version
     systemProperties['springVersion'] = springVersion
-
-    if (maxAESKeySize < 256) {
-        logger.warn("AES keysize limited to $maxAESKeySize, skipping EncryptorsTests")
-        exclude '**/EncryptorsTests.class'
-    }
 }

+ 12 - 0
crypto/crypto.gradle

@@ -0,0 +1,12 @@
+// crypto module build file
+
+// jdkVersion = System.properties['java.version']
+// isJdk6 = jdkVersion >= '1.6'
+int maxAESKeySize = javax.crypto.Cipher.getMaxAllowedKeyLength('AES')
+
+test {
+    if (maxAESKeySize < 256) {
+        println "AES keysize limited to $maxAESKeySize, skipping EncryptorsTests"
+        exclude '**/EncryptorsTests.class'
+    }
+}

+ 0 - 0
core/src/main/java/org/springframework/security/crypto/codec/Base64.java → crypto/src/main/java/org/springframework/security/crypto/codec/Base64.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/codec/Hex.java → crypto/src/main/java/org/springframework/security/crypto/codec/Hex.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/codec/Utf8.java → crypto/src/main/java/org/springframework/security/crypto/codec/Utf8.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/codec/package-info.java → crypto/src/main/java/org/springframework/security/crypto/codec/package-info.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java → crypto/src/main/java/org/springframework/security/crypto/encrypt/AesBytesEncryptor.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/encrypt/BytesEncryptor.java → crypto/src/main/java/org/springframework/security/crypto/encrypt/BytesEncryptor.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/encrypt/CipherUtils.java → crypto/src/main/java/org/springframework/security/crypto/encrypt/CipherUtils.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java → crypto/src/main/java/org/springframework/security/crypto/encrypt/Encryptors.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java → crypto/src/main/java/org/springframework/security/crypto/encrypt/HexEncodingTextEncryptor.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/encrypt/TextEncryptor.java → crypto/src/main/java/org/springframework/security/crypto/encrypt/TextEncryptor.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/keygen/BytesKeyGenerator.java → crypto/src/main/java/org/springframework/security/crypto/keygen/BytesKeyGenerator.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java → crypto/src/main/java/org/springframework/security/crypto/keygen/HexEncodingStringKeyGenerator.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/keygen/KeyGenerators.java → crypto/src/main/java/org/springframework/security/crypto/keygen/KeyGenerators.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java → crypto/src/main/java/org/springframework/security/crypto/keygen/SecureRandomBytesKeyGenerator.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java → crypto/src/main/java/org/springframework/security/crypto/keygen/SharedKeyGenerator.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/keygen/StringKeyGenerator.java → crypto/src/main/java/org/springframework/security/crypto/keygen/StringKeyGenerator.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/password/Digester.java → crypto/src/main/java/org/springframework/security/crypto/password/Digester.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java → crypto/src/main/java/org/springframework/security/crypto/password/NoOpPasswordEncoder.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/password/PasswordEncoder.java → crypto/src/main/java/org/springframework/security/crypto/password/PasswordEncoder.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java → crypto/src/main/java/org/springframework/security/crypto/password/StandardPasswordEncoder.java


+ 0 - 0
core/src/main/java/org/springframework/security/crypto/util/EncodingUtils.java → crypto/src/main/java/org/springframework/security/crypto/util/EncodingUtils.java


+ 0 - 0
core/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java → crypto/src/test/java/org/springframework/security/crypto/codec/Utf8Tests.java


+ 0 - 0
core/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java → crypto/src/test/java/org/springframework/security/crypto/encrypt/EncryptorsTests.java


+ 0 - 0
core/src/test/java/org/springframework/security/crypto/keygen/KeyGeneratorsTests.java → crypto/src/test/java/org/springframework/security/crypto/keygen/KeyGeneratorsTests.java


+ 0 - 0
core/src/test/java/org/springframework/security/crypto/password/DigesterTests.java → crypto/src/test/java/org/springframework/security/crypto/password/DigesterTests.java


+ 0 - 0
core/src/test/java/org/springframework/security/crypto/password/StandardPasswordEncoderTests.java → crypto/src/test/java/org/springframework/security/crypto/password/StandardPasswordEncoderTests.java


+ 0 - 0
core/src/test/java/org/springframework/security/crypto/util/EncodingUtilsTests.java → crypto/src/test/java/org/springframework/security/crypto/util/EncodingUtilsTests.java


+ 2 - 1
settings.gradle

@@ -8,7 +8,8 @@ def String[] modules = [
     'cas',
     'openid',
     'taglibs',
-    'aspects'
+    'aspects',
+    'crypto'
 ]
 
 def String[] samples = [