Skip to content

Commit f8ac095

Browse files
committed
Add nullability contract to PasswordEncoder#encode implementations
Signed-off-by: Stefano Cordio <stefano.cordio@gmail.com>AbstractValidatingPasswordEncoder.java
1 parent d65625e commit f8ac095

File tree

4 files changed

+7
-1
lines changed

4 files changed

+7
-1
lines changed

config/src/main/java/org/springframework/security/config/annotation/authentication/configuration/AuthenticationConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.springframework.context.annotation.Import;
3737
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
3838
import org.springframework.core.log.LogMessage;
39+
import org.springframework.lang.Contract;
3940
import org.springframework.security.authentication.AuthenticationEventPublisher;
4041
import org.springframework.security.authentication.AuthenticationManager;
4142
import org.springframework.security.authentication.DefaultAuthenticationEventPublisher;
@@ -302,6 +303,7 @@ static class LazyPasswordEncoder implements PasswordEncoder {
302303
}
303304

304305
@Override
306+
@Contract("!null -> !null; null -> null")
305307
public String encode(CharSequence rawPassword) {
306308
return getPasswordEncoder().encode(rawPassword);
307309
}

config/src/main/java/org/springframework/security/config/annotation/web/configuration/HttpSecurityConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.core.MethodParameter;
3131
import org.springframework.core.ResolvableType;
3232
import org.springframework.core.io.support.SpringFactoriesLoader;
33+
import org.springframework.lang.Contract;
3334
import org.springframework.security.authentication.AuthenticationEventPublisher;
3435
import org.springframework.security.authentication.AuthenticationManager;
3536
import org.springframework.security.authentication.DefaultAuthenticationEventPublisher;
@@ -293,6 +294,7 @@ static class LazyPasswordEncoder implements PasswordEncoder {
293294
}
294295

295296
@Override
297+
@Contract("!null -> !null; null -> null")
296298
public String encode(CharSequence rawPassword) {
297299
return getPasswordEncoder().encode(rawPassword);
298300
}

crypto/src/main/java/org/springframework/security/crypto/password/AbstractValidatingPasswordEncoder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.jspecify.annotations.Nullable;
2020

21+
import org.springframework.lang.Contract;
2122
import org.springframework.util.StringUtils;
2223

2324
/**
@@ -33,6 +34,7 @@
3334
public abstract class AbstractValidatingPasswordEncoder implements PasswordEncoder {
3435

3536
@Override
37+
@Contract("!null -> !null; null -> null")
3638
public final @Nullable String encode(@Nullable CharSequence rawPassword) {
3739
if (rawPassword == null) {
3840
return null;

crypto/src/main/java/org/springframework/security/crypto/password/PasswordEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public interface PasswordEncoder {
3838
* @return A non-null encoded password, unless the rawPassword was null in which case
3939
* the result must be null.
4040
*/
41-
@Contract("null -> null; !null -> !null")
41+
@Contract("!null -> !null; null -> null")
4242
@Nullable String encode(@Nullable CharSequence rawPassword);
4343

4444
/**

0 commit comments

Comments
 (0)