Skip to content

Commit 46ffe65

Browse files
Added nullable
1 parent cd51b58 commit 46ffe65

File tree

6 files changed

+42
-20
lines changed

6 files changed

+42
-20
lines changed

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/jackson/.LCKpackage-info.java~

Lines changed: 0 additions & 1 deletion
This file was deleted.

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/web/BaseOpenSamlAuthenticationTokenConverter.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616

1717
package org.springframework.security.saml2.provider.service.web;
1818

19-
import jakarta.servlet.http.HttpServletRequest;
2019
import org.opensaml.saml.saml2.core.Response;
21-
2220
import org.springframework.http.HttpMethod;
21+
22+
import org.jspecify.annotations.Nullable;
2323
import org.springframework.security.saml2.core.OpenSamlInitializationService;
2424
import org.springframework.security.saml2.core.Saml2Error;
2525
import org.springframework.security.saml2.core.Saml2ParameterNames;
@@ -30,11 +30,12 @@
3030
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
3131
import org.springframework.security.saml2.provider.service.web.RelyingPartyRegistrationPlaceholderResolvers.UriResolver;
3232
import org.springframework.security.web.authentication.AuthenticationConverter;
33+
import static org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher.pathPattern;
3334
import org.springframework.security.web.util.matcher.OrRequestMatcher;
3435
import org.springframework.security.web.util.matcher.RequestMatcher;
3536
import org.springframework.util.Assert;
3637

37-
import static org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher.pathPattern;
38+
import jakarta.servlet.http.HttpServletRequest;
3839

3940
final class BaseOpenSamlAuthenticationTokenConverter implements AuthenticationConverter {
4041

@@ -91,7 +92,9 @@ final class BaseOpenSamlAuthenticationTokenConverter implements AuthenticationCo
9192
* @throws Saml2AuthenticationException if the {@link RequestMatcher} specifies a
9293
* non-existent {@code registrationId}
9394
*/
95+
9496
@Override
97+
@Nullable
9598
public Saml2AuthenticationToken convert(HttpServletRequest request) {
9699
String serialized = request.getParameter(Saml2ParameterNames.SAML_RESPONSE);
97100
if (serialized == null) {
@@ -110,7 +113,8 @@ public Saml2AuthenticationToken convert(HttpServletRequest request) {
110113
}
111114
return token;
112115
}
113-
116+
117+
@Nullable
114118
private Saml2AuthenticationToken tokenByAuthenticationRequest(HttpServletRequest request) {
115119
AbstractSaml2AuthenticationRequest authenticationRequest = this.authenticationRequests
116120
.loadAuthenticationRequest(request);
@@ -121,7 +125,8 @@ private Saml2AuthenticationToken tokenByAuthenticationRequest(HttpServletRequest
121125
RelyingPartyRegistration registration = this.registrations.findByRegistrationId(registrationId);
122126
return tokenByRegistration(request, registration, authenticationRequest);
123127
}
124-
128+
129+
@Nullable
125130
private Saml2AuthenticationToken tokenByRegistrationId(HttpServletRequest request,
126131
RequestMatcher.MatchResult result) {
127132
String registrationId = result.getVariables().get("registrationId");
@@ -132,15 +137,18 @@ private Saml2AuthenticationToken tokenByRegistrationId(HttpServletRequest reques
132137
return tokenByRegistration(request, registration, null);
133138
}
134139

140+
@Nullable
135141
private Saml2AuthenticationToken tokenByEntityId(HttpServletRequest request) {
136142
Response response = this.saml.deserialize(decode(request));
137143
String issuer = response.getIssuer().getValue();
138144
RelyingPartyRegistration registration = this.registrations.findUniqueByAssertingPartyEntityId(issuer);
139145
return tokenByRegistration(request, registration, null);
140146
}
141147

142-
private Saml2AuthenticationToken tokenByRegistration(HttpServletRequest request,
143-
RelyingPartyRegistration registration, AbstractSaml2AuthenticationRequest authenticationRequest) {
148+
@Nullable
149+
private Saml2AuthenticationToken tokenByRegistration(HttpServletRequest request,
150+
@Nullable RelyingPartyRegistration registration,
151+
@Nulable AbstractSaml2AuthenticationRequest authenticationRequest) {
144152
if (registration == null) {
145153
return null;
146154
}
@@ -178,6 +186,7 @@ void setShouldConvertGetRequests(boolean shouldConvertGetRequests) {
178186
this.shouldConvertGetRequests = shouldConvertGetRequests;
179187
}
180188

189+
@Nullable
181190
private String decode(HttpServletRequest request) {
182191
String encoded = request.getParameter(Saml2ParameterNames.SAML_RESPONSE);
183192
boolean isGet = HttpMethod.GET.matches(request.getMethod());

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/web/CacheSaml2AuthenticationRequestRepository.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@
1616

1717
package org.springframework.security.saml2.provider.service.web;
1818

19-
import jakarta.servlet.http.HttpServletRequest;
20-
import jakarta.servlet.http.HttpServletResponse;
21-
19+
import org.jspecify.annotations.Nullable;
2220
import org.springframework.cache.Cache;
2321
import org.springframework.cache.concurrent.ConcurrentMapCache;
2422
import org.springframework.security.saml2.core.Saml2ParameterNames;
2523
import org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest;
2624
import org.springframework.util.Assert;
2725

26+
import jakarta.servlet.http.HttpServletRequest;
27+
import jakarta.servlet.http.HttpServletResponse;
28+
2829
/**
2930
* A cache-based {@link Saml2AuthenticationRequestRepository}. This can be handy when you
3031
* are dropping requests due to using SameSite=Strict and the previous session is lost.
@@ -43,6 +44,7 @@ public final class CacheSaml2AuthenticationRequestRepository
4344
private Cache cache = new ConcurrentMapCache("authentication-requests");
4445

4546
@Override
47+
@Nullable
4648
public AbstractSaml2AuthenticationRequest loadAuthenticationRequest(HttpServletRequest request) {
4749
String relayState = request.getParameter(Saml2ParameterNames.RELAY_STATE);
4850
Assert.notNull(relayState, "relayState must not be null");
@@ -58,6 +60,7 @@ public void saveAuthenticationRequest(AbstractSaml2AuthenticationRequest authent
5860
}
5961

6062
@Override
63+
@Nullable
6164
public AbstractSaml2AuthenticationRequest removeAuthenticationRequest(HttpServletRequest request,
6265
HttpServletResponse response) {
6366
String relayState = request.getParameter(Saml2ParameterNames.RELAY_STATE);

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/web/DefaultRelyingPartyRegistrationResolver.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
package org.springframework.security.saml2.provider.service.web;
1818

1919
import java.util.Map;
20+
import java.util.regex.MatchResult;
2021

21-
import jakarta.servlet.http.HttpServletRequest;
22+
import org.jspecify.annotations.Nullable;
2223
import org.apache.commons.logging.Log;
2324
import org.apache.commons.logging.LogFactory;
24-
2525
import org.springframework.core.convert.converter.Converter;
2626
import org.springframework.http.server.PathContainer;
2727
import org.springframework.http.server.RequestPath;
@@ -31,6 +31,8 @@
3131
import org.springframework.security.web.util.matcher.RequestMatcher;
3232
import org.springframework.util.Assert;
3333

34+
import jakarta.servlet.http.HttpServletRequest;
35+
3436
/**
3537
* A {@link Converter} that resolves a {@link RelyingPartyRegistration} by extracting the
3638
* registration id from the request, querying a
@@ -76,6 +78,7 @@ public DefaultRelyingPartyRegistrationResolver(
7678
* {@inheritDoc}
7779
*/
7880
@Override
81+
@Nullable
7982
public RelyingPartyRegistration convert(HttpServletRequest request) {
8083
return resolve(request, null);
8184
}
@@ -84,7 +87,9 @@ public RelyingPartyRegistration convert(HttpServletRequest request) {
8487
* {@inheritDoc}
8588
*/
8689
@Override
87-
public RelyingPartyRegistration resolve(HttpServletRequest request, String relyingPartyRegistrationId) {
90+
@Nullable
91+
public RelyingPartyRegistration resolve(HttpServletRequest request,
92+
@Nullable String relyingPartyRegistrationId) {
8893
if (relyingPartyRegistrationId == null) {
8994
if (this.logger.isTraceEnabled()) {
9095
this.logger.trace("Attempting to resolve from " + this.registrationRequestMatcher

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/web/HttpSessionSaml2AuthenticationRequestRepository.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@
1616

1717
package org.springframework.security.saml2.provider.service.web;
1818

19+
import org.jspecify.annotations.Nullable;
20+
import org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest;
21+
1922
import jakarta.servlet.http.HttpServletRequest;
2023
import jakarta.servlet.http.HttpServletResponse;
2124
import jakarta.servlet.http.HttpSession;
2225

23-
import org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest;
24-
2526
/**
2627
* A {@link Saml2AuthenticationRequestRepository} implementation that uses
2728
* {@link HttpSession} to store and retrieve the
@@ -40,6 +41,7 @@ public class HttpSessionSaml2AuthenticationRequestRepository
4041
private String saml2AuthnRequestAttributeName = DEFAULT_SAML2_AUTHN_REQUEST_ATTR_NAME;
4142

4243
@Override
44+
@Nullable
4345
public AbstractSaml2AuthenticationRequest loadAuthenticationRequest(HttpServletRequest request) {
4446
HttpSession httpSession = request.getSession(false);
4547
if (httpSession == null) {
@@ -49,7 +51,7 @@ public AbstractSaml2AuthenticationRequest loadAuthenticationRequest(HttpServletR
4951
}
5052

5153
@Override
52-
public void saveAuthenticationRequest(AbstractSaml2AuthenticationRequest authenticationRequest,
54+
public void saveAuthenticationRequest(@Nullable AbstractSaml2AuthenticationRequest authenticationRequest,
5355
HttpServletRequest request, HttpServletResponse response) {
5456
if (authenticationRequest == null) {
5557
removeAuthenticationRequest(request, response);
@@ -60,6 +62,7 @@ public void saveAuthenticationRequest(AbstractSaml2AuthenticationRequest authent
6062
}
6163

6264
@Override
65+
@Nullable
6366
public AbstractSaml2AuthenticationRequest removeAuthenticationRequest(HttpServletRequest request,
6467
HttpServletResponse response) {
6568
AbstractSaml2AuthenticationRequest authenticationRequest = loadAuthenticationRequest(request);

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/web/Saml2AuthenticationRequestRepository.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
1616

1717
package org.springframework.security.saml2.provider.service.web;
1818

19+
import org.jspecify.annotations.Nullable;
20+
import org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest;
21+
1922
import jakarta.servlet.http.HttpServletRequest;
2023
import jakarta.servlet.http.HttpServletResponse;
2124

22-
import org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest;
23-
2425
/**
2526
* A repository for {@link AbstractSaml2AuthenticationRequest}
2627
*
@@ -36,6 +37,7 @@ public interface Saml2AuthenticationRequestRepository<T extends AbstractSaml2Aut
3637
* @return the {@link AbstractSaml2AuthenticationRequest} or {@code null} if it is not
3738
* present
3839
*/
40+
@Nullable
3941
T loadAuthenticationRequest(HttpServletRequest request);
4042

4143
/**
@@ -45,7 +47,7 @@ public interface Saml2AuthenticationRequestRepository<T extends AbstractSaml2Aut
4547
* @param request the current request
4648
* @param response the current response
4749
*/
48-
void saveAuthenticationRequest(T authenticationRequest, HttpServletRequest request, HttpServletResponse response);
50+
void saveAuthenticationRequest(@Nullable T authenticationRequest, HttpServletRequest request, HttpServletResponse response);
4951

5052
/**
5153
* Removes the authentication request using the {@link HttpServletRequest} and
@@ -55,6 +57,7 @@ public interface Saml2AuthenticationRequestRepository<T extends AbstractSaml2Aut
5557
* @return the removed {@link AbstractSaml2AuthenticationRequest} or {@code null} if
5658
* it is not present
5759
*/
60+
@Nullable
5861
T removeAuthenticationRequest(HttpServletRequest request, HttpServletResponse response);
5962

6063
}

0 commit comments

Comments
 (0)