Skip to content

Commit a2c1fa7

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

4 files changed

Lines changed: 8 additions & 1 deletion

File tree

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;
@@ -301,6 +302,7 @@ static class LazyPasswordEncoder implements PasswordEncoder {
301302
this.applicationContext = applicationContext;
302303
}
303304

305+
@Contract("!null -> !null; null -> null")
304306
@Override
305307
public String encode(CharSequence rawPassword) {
306308
return getPasswordEncoder().encode(rawPassword);

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;
@@ -292,6 +293,7 @@ static class LazyPasswordEncoder implements PasswordEncoder {
292293
this.applicationContext = applicationContext;
293294
}
294295

296+
@Contract("!null -> !null; null -> null")
295297
@Override
296298
public String encode(CharSequence rawPassword) {
297299
return getPasswordEncoder().encode(rawPassword);

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@
1818

1919
import org.jspecify.annotations.Nullable;
2020

21+
import org.springframework.lang.Contract;
22+
2123
public abstract class AbstractValidatingPasswordEncoder implements PasswordEncoder {
2224

2325
@Override
26+
@Contract("!null -> !null; null -> null")
2427
public final @Nullable String encode(@Nullable CharSequence rawPassword) {
2528
if (rawPassword == null) {
2629
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)