diff --git a/crypto/src/main/java/org/springframework/security/crypto/password/Digester.java b/crypto/src/main/java/org/springframework/security/crypto/password/Digester.java index d42ec3a821..35e9b600de 100644 --- a/crypto/src/main/java/org/springframework/security/crypto/password/Digester.java +++ b/crypto/src/main/java/org/springframework/security/crypto/password/Digester.java @@ -31,7 +31,7 @@ final class Digester { private final String algorithm; - private final int iterations; + private int iterations; /** * Create a new Digester. @@ -42,7 +42,7 @@ final class Digester { // eagerly validate the algorithm createDigest(algorithm); this.algorithm = algorithm; - this.iterations = iterations; + setIterations(iterations); } public byte[] digest(byte[] value) { @@ -53,6 +53,13 @@ final class Digester { return value; } + final void setIterations(int iterations) { + if(iterations <= 0) { + throw new IllegalArgumentException("Iterations value must be greater than zero"); + } + this.iterations = iterations; + } + private static MessageDigest createDigest(String algorithm) { try { return MessageDigest.getInstance(algorithm);