diff --git a/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java b/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java index 527eb84759f..3c80655261b 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java +++ b/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java @@ -26,6 +26,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.security.config.Customizer; import org.springframework.security.config.ObjectPostProcessor; @@ -51,6 +52,7 @@ * @param The type of this builder (that is returned by the base class) * @author Rob Winch * @author DingHao + * @author Andrey Litvitski * @see WebSecurity */ public abstract class AbstractConfiguredSecurityBuilder> @@ -101,7 +103,7 @@ protected AbstractConfiguredSecurityBuilder(ObjectPostProcessor objectPo * @return the result of {@link SecurityBuilder#build()} or {@link #getObject()}. If * an error occurs while building, returns null. */ - public O getOrBuild() { + public @Nullable O getOrBuild() { if (!isUnbuilt()) { return getObject(); } @@ -182,7 +184,7 @@ public void setSharedObject(Class sharedType, C object) { * @return the shared Object or null if it is not found */ @SuppressWarnings("unchecked") - public C getSharedObject(Class sharedType) { + public @Nullable C getSharedObject(Class sharedType) { return (C) this.sharedObjects.get(sharedType); } @@ -276,7 +278,7 @@ public > C getConfigurer(Class clazz) { * @return */ @SuppressWarnings("unchecked") - public > C removeConfigurer(Class clazz) { + public > @Nullable C removeConfigurer(Class clazz) { List> configs = this.configurers.remove(clazz); if (configs == null) { return null; diff --git a/config/src/main/kotlin/org/springframework/security/config/annotation/web/HttpSecurityDsl.kt b/config/src/main/kotlin/org/springframework/security/config/annotation/web/HttpSecurityDsl.kt index 5d25617b2b8..0277d427ad8 100644 --- a/config/src/main/kotlin/org/springframework/security/config/annotation/web/HttpSecurityDsl.kt +++ b/config/src/main/kotlin/org/springframework/security/config/annotation/web/HttpSecurityDsl.kt @@ -73,6 +73,7 @@ operator fun HttpSecurity.invoke(httpConfiguration: HttpSecurityDsl.() -> Unit) * in order to configure [HttpSecurity] using idiomatic Kotlin code. * * @author Eleftheria Stein + * @author Andrey Litvitski * @since 5.3 * @param http the [HttpSecurity] which all configurations will be applied to * @param init the configurations to apply to the provided [HttpSecurity] @@ -82,7 +83,7 @@ operator fun HttpSecurity.invoke(httpConfiguration: HttpSecurityDsl.() -> Unit) class HttpSecurityDsl(private val http: HttpSecurity, private val init: HttpSecurityDsl.() -> Unit) { var authenticationManager: AuthenticationManager? = null - val context: ApplicationContext = http.getSharedObject(ApplicationContext::class.java) + val context: ApplicationContext = http.getSharedObject(ApplicationContext::class.java)!! init { applyFunction1HttpSecurityDslBeans(this.context, this)