Skip to content

Commit 7c887d2

Browse files
committed
Add nullability to spring-security-core
Closes gh-17534
1 parent 9db1ffb commit 7c887d2

File tree

249 files changed

+1888
-839
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

249 files changed

+1888
-839
lines changed

config/src/test/kotlin/org/springframework/security/config/annotation/web/OAuth2ResourceServerDslTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ class OAuth2ResourceServerDslTests {
242242

243243
class MockAuthenticationManager(var authentication: Authentication) : AuthenticationManager {
244244

245-
override fun authenticate(authentication: Authentication?): Authentication {
245+
override fun authenticate(authentication: Authentication): Authentication {
246246
return this.authentication
247247
}
248248

config/src/test/kotlin/org/springframework/security/config/annotation/web/session/SessionConcurrencyDslTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ class SessionConcurrencyDslTests {
217217
sessionManagement {
218218
sessionConcurrency {
219219
maximumSessions {
220-
authentication -> if (isAdmin.authorize({ authentication }, null)!!.isGranted) -1 else 1
220+
authentication -> if (isAdmin.authorize({ authentication }, "")!!.isGranted) -1 else 1
221221
}
222222
maxSessionsPreventsLogin = true
223223
}

config/src/test/kotlin/org/springframework/security/config/web/server/ServerFormLoginDslTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ class ServerFormLoginDslTests {
172172
}
173173

174174
class NoopReactiveAuthenticationManager: ReactiveAuthenticationManager {
175-
override fun authenticate(authentication: Authentication?): Mono<Authentication> {
175+
override fun authenticate(authentication: Authentication): Mono<Authentication> {
176176
return Mono.empty()
177177
}
178178
}

config/src/test/kotlin/org/springframework/security/config/web/server/ServerHttpBasicDslTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class ServerHttpBasicDslTests {
151151
}
152152

153153
class NoopReactiveAuthenticationManager: ReactiveAuthenticationManager {
154-
override fun authenticate(authentication: Authentication?): Mono<Authentication> {
154+
override fun authenticate(authentication: Authentication): Mono<Authentication> {
155155
return Mono.empty()
156156
}
157157
}

config/src/test/kotlin/org/springframework/security/config/web/server/ServerHttpSecurityDslTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ class ServerHttpSecurityDslTests {
249249
}
250250

251251
class NoopReactiveAuthenticationManager: ReactiveAuthenticationManager {
252-
override fun authenticate(authentication: Authentication?): Mono<Authentication> {
252+
override fun authenticate(authentication: Authentication): Mono<Authentication> {
253253
return Mono.empty()
254254
}
255255
}

config/src/test/kotlin/org/springframework/security/config/web/server/ServerOAuth2ClientDslTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ class ServerOAuth2ClientDslTests {
276276
}
277277

278278
class NoopReactiveAuthenticationManager: ReactiveAuthenticationManager {
279-
override fun authenticate(authentication: Authentication?): Mono<Authentication> {
279+
override fun authenticate(authentication: Authentication): Mono<Authentication> {
280280
return Mono.empty()
281281
}
282282
}

core/spring-security-core.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import java.util.concurrent.Callable
22

3+
plugins {
4+
id 'security-nullability'
5+
}
6+
37
apply plugin: 'io.spring.convention.spring-module'
48
apply plugin: 'security-kotlin'
59

core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import jakarta.annotation.security.DenyAll;
2626
import jakarta.annotation.security.PermitAll;
2727
import jakarta.annotation.security.RolesAllowed;
28+
import org.jspecify.annotations.NullUnmarked;
29+
import org.jspecify.annotations.Nullable;
2830

2931
import org.springframework.core.annotation.AnnotationUtils;
3032
import org.springframework.security.access.ConfigAttribute;
@@ -39,6 +41,7 @@
3941
* {@link org.springframework.security.authorization.method.Jsr250AuthorizationManager}
4042
* instead
4143
*/
44+
@NullUnmarked
4245
@Deprecated
4346
public class Jsr250MethodSecurityMetadataSource extends AbstractFallbackMethodSecurityMetadataSource {
4447

@@ -71,11 +74,11 @@ protected Collection<ConfigAttribute> findAttributes(Method method, Class<?> tar
7174
}
7275

7376
@Override
74-
public Collection<ConfigAttribute> getAllConfigAttributes() {
77+
public @Nullable Collection<ConfigAttribute> getAllConfigAttributes() {
7578
return null;
7679
}
7780

78-
private List<ConfigAttribute> processAnnotations(Annotation[] annotations) {
81+
private @Nullable List<ConfigAttribute> processAnnotations(Annotation @Nullable [] annotations) {
7982
if (annotations == null || annotations.length == 0) {
8083
return null;
8184
}

core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import java.util.Collection;
2323
import java.util.List;
2424

25+
import org.jspecify.annotations.NullUnmarked;
26+
import org.jspecify.annotations.Nullable;
27+
2528
import org.springframework.core.GenericTypeResolver;
2629
import org.springframework.core.annotation.AnnotationUtils;
2730
import org.springframework.security.access.ConfigAttribute;
@@ -41,13 +44,14 @@
4144
* @deprecated Use
4245
* {@link org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor#secured}
4346
*/
47+
@NullUnmarked
4448
@Deprecated
4549
@SuppressWarnings({ "unchecked" })
4650
public class SecuredAnnotationSecurityMetadataSource extends AbstractFallbackMethodSecurityMetadataSource {
4751

4852
private AnnotationMetadataExtractor annotationExtractor;
4953

50-
private Class<? extends Annotation> annotationType;
54+
private @Nullable Class<? extends Annotation> annotationType;
5155

5256
public SecuredAnnotationSecurityMetadataSource() {
5357
this(new SecuredAnnotationMetadataExtractor());
@@ -73,11 +77,11 @@ protected Collection<ConfigAttribute> findAttributes(Method method, Class<?> tar
7377
}
7478

7579
@Override
76-
public Collection<ConfigAttribute> getAllConfigAttributes() {
80+
public @Nullable Collection<ConfigAttribute> getAllConfigAttributes() {
7781
return null;
7882
}
7983

80-
private Collection<ConfigAttribute> processAnnotation(Annotation annotation) {
84+
private @Nullable Collection<ConfigAttribute> processAnnotation(@Nullable Annotation annotation) {
8185
return (annotation != null) ? this.annotationExtractor.extractAttributes(annotation) : null;
8286
}
8387

core/src/main/java/org/springframework/security/access/annotation/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@
1717
/**
1818
* Support for JSR-250 and Spring Security {@code @Secured} annotations.
1919
*/
20+
@NullMarked
2021
package org.springframework.security.access.annotation;
22+
23+
import org.jspecify.annotations.NullMarked;

0 commit comments

Comments
 (0)