[java-oidc-common] branch main updated: Null cleanup for profile-api/impl.
Henri Mikkonen
henri.mikkonen at iki.fi
Fri Apr 5 13:15:12 UTC 2024
This is an automated email from the git hooks/post-receive script.
hjmikkon pushed a commit to branch main
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=c14c8eb792f6a6ee83a7a48c104833a22797d693
The following commit(s) were added to refs/heads/main by this push:
new c14c8eb Null cleanup for profile-api/impl.
c14c8eb is described below
commit c14c8eb792f6a6ee83a7a48c104833a22797d693
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Fri Apr 5 16:15:04 2024 +0300
Null cleanup for profile-api/impl.
---
.../OIDCIDTokenProducingProfileConfiguration.java | 2 +-
.../config/OIDCLogoutProfileConfiguration.java | 2 +-
.../config/navigate/GrantTypesLookupFunction.java | 8 +++----
.../JWEDataEncryptionAlgorithmsLookupFunction.java | 2 +-
...ransportEncryptionAlgorithmsLookupFunction.java | 2 +-
.../JWSSignatureAlgorithmsLookupFunction.java | 2 +-
...nticationContextClassRequestLookupFunction.java | 4 +++-
.../TokenEndpointAuthMethodLookupFunction.java | 10 ++++-----
.../profile/core/OIDCAuthenticationRequest.java | 5 ++---
...h2AccessTokenProducingProfileConfiguration.java | 2 +-
...orizationCodeProducingProfileConfiguration.java | 2 +-
...entAuthenticableClientProfileConfiguration.java | 3 +--
...th2ClientAuthenticableProfileConfiguration.java | 2 +-
.../oauth2/config/OAuth2TokenConfiguration.java | 2 +-
.../config/OAuth2TokenRevocationConfiguration.java | 1 +
...thenticationContextClassLookupFunctionTest.java | 7 +++---
...tionContextClassResponseLookupFunctionTest.java | 2 +-
.../impl/DateBasedJWTClaimAuditExtractor.java | 16 +++++++++----
.../config/impl/AbstractOIDCSSOConfiguration.java | 24 +++++++++++---------
.../DefaultOIDCAuthorizationConfiguration.java | 16 +++++++------
.../impl/DefaultOIDCLogoutConfiguration.java | 26 +++++++++++-----------
.../impl/HTTPPostAuthnResponseDecoder.java | 3 ++-
.../impl/HTTPRedirectAuthnResponseDecoder.java | 3 ++-
.../impl/HTTPRedirectAuthnRequestEncoder.java | 4 +++-
.../impl/AbstractBuildErrorResponseFromEvent.java | 1 +
.../impl/PopulateJWTDecryptionParameters.java | 4 +++-
.../impl/PopulateJWTEncryptionParameters.java | 4 +++-
.../PopulateJWTSignatureSigningParameters.java | 10 ++++-----
...pulateJWTSignatureSigningParametersHandler.java | 11 ++++++---
.../PopulateJWTSignatureValidationParameters.java | 4 +++-
...entIDFromOIDCMetadataContextLookupFunction.java | 7 ++++--
...mOIDCProviderMetadataContextLookupFunction.java | 7 ++++--
...th2ClientAuthenticableProfileConfiguration.java | 12 +++++++---
.../DefaultOAuth2TokenAudienceConfiguration.java | 7 +++---
.../impl/DefaultOAuth2TokenConfiguration.java | 2 +-
.../DefaultOAuth2TokenRevocationConfiguration.java | 7 +++---
.../impl/OIDCCoreProtocolConfigurationTest.java | 5 +++++
.../impl/HTTPPostAuthnRequestEncoderTest.java | 2 ++
.../impl/HTTPRedirectAuthnRequestEncoderTest.java | 3 ++-
.../impl/SimpleNimbusResponseEncoderTest.java | 1 +
.../FormOutboundKeySetResponseMessageTest.java | 2 +-
41 files changed, 145 insertions(+), 94 deletions(-)
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java
index db54837..1f326cd 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCIDTokenProducingProfileConfiguration.java
@@ -56,7 +56,7 @@ public interface OIDCIDTokenProducingProfileConfiguration extends OIDCProfileCon
* @since 2.1.0
*/
@ConfigurationSetting(name="iDTokenManipulationStrategy")
- @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> getIDTokenManipulationStrategy(
+ @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> getIDTokenManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
index 02be179..91e25cf 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
@@ -85,7 +85,7 @@ public interface OIDCLogoutProfileConfiguration extends OAuth2TokenEncryptionPro
* @return the bi-predicate for matching logout hint to an existing session.
*/
@ConfigurationSetting(name="logoutHintMatchingStrategy")
- @Nonnull BiPredicate<String,SPSession> getLogoutHintMatchingStrategy(
+ @Nullable BiPredicate<String,SPSession> getLogoutHintMatchingStrategy(
@Nullable final ProfileRequestContext profileRequestContext);
}
\ No newline at end of file
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java
index ae3f50f..39d612e 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/GrantTypesLookupFunction.java
@@ -48,11 +48,9 @@ public class GrantTypesLookupFunction extends AbstractRelyingPartyLookupFunction
final ProfileConfiguration pc = rpc.getProfileConfig();
if (pc instanceof OAuth2TokenConfiguration) {
final Set<String> types = ((OAuth2TokenConfiguration)pc).getGrantTypes(input);
- if (types != null) {
- return types.stream()
- .map(GrantType::new)
- .collect(Collectors.toUnmodifiableSet());
- }
+ return types.stream()
+ .map(GrantType::new)
+ .collect(Collectors.toUnmodifiableSet());
} else if (pc instanceof OIDCAuthorizationConfiguration) {
// For compatibility just return the lone supported type.
return Set.of(GrantType.AUTHORIZATION_CODE, GrantType.REFRESH_TOKEN);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java
index f674568..18fd8d1 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEDataEncryptionAlgorithmsLookupFunction.java
@@ -50,7 +50,7 @@ public class JWEDataEncryptionAlgorithmsLookupFunction extends AbstractRelyingPa
final SecurityConfiguration secConfig = pc.getSecurityConfiguration(input);
if (secConfig instanceof JSONSecurityConfiguration jsc) {
final EncryptionConfiguration encryptionConfig = jsc.getJwtEncryptionConfiguration();
- if (encryptionConfig != null && encryptionConfig.getDataEncryptionAlgorithms() != null) {
+ if (encryptionConfig != null) {
return encryptionConfig.getDataEncryptionAlgorithms();
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java
index 0483036..d16bf55 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWEKeyTransportEncryptionAlgorithmsLookupFunction.java
@@ -54,7 +54,7 @@ public class JWEKeyTransportEncryptionAlgorithmsLookupFunction
final SecurityConfiguration secConfig = pc.getSecurityConfiguration(input);
if (secConfig instanceof JSONSecurityConfiguration jsc) {
final EncryptionConfiguration encryptionConfig = jsc.getJwtEncryptionConfiguration();
- if (encryptionConfig != null && encryptionConfig.getKeyTransportEncryptionAlgorithms() != null) {
+ if (encryptionConfig != null) {
return encryptionConfig.getKeyTransportEncryptionAlgorithms();
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java
index f4822db..5c166ef 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/JWSSignatureAlgorithmsLookupFunction.java
@@ -53,7 +53,7 @@ public class JWSSignatureAlgorithmsLookupFunction extends AbstractRelyingPartyLo
final SecurityConfiguration secConfig = pc.getSecurityConfiguration(input);
if (secConfig instanceof JSONSecurityConfiguration jsc) {
final SignatureSigningConfiguration sigConfig = jsc.getJwtSignatureSigningConfiguration();
- if (sigConfig != null && sigConfig.getSignatureAlgorithms() != null) {
+ if (sigConfig != null) {
return sigConfig.getSignatureAlgorithms();
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java
index 0045cee..71d4d85 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunction.java
@@ -94,8 +94,10 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassRequestLookupFunctio
} else {
// If no mapping exists, just convert to correct output type - which might not make sense
// to the upstream OP.
+ final String name = requestedPrincipal.getName();
+ assert name != null;
mappedAndPassedThroughPrincipals.add(
- new AuthenticationContextClassReferencePrincipal(requestedPrincipal.getName()));
+ new AuthenticationContextClassReferencePrincipal(name));
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java
index 8b99214..42aa849 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/navigate/TokenEndpointAuthMethodLookupFunction.java
@@ -49,12 +49,10 @@ public class TokenEndpointAuthMethodLookupFunction
if (pc instanceof OAuth2ClientAuthenticableProfileConfiguration) {
final Set<String> methods =
((OAuth2ClientAuthenticableProfileConfiguration)pc).getTokenEndpointAuthMethods(input);
- if (methods != null) {
- return methods
- .stream()
- .map(ClientAuthenticationMethod::new)
- .collect(Collectors.toUnmodifiableSet());
- }
+ return methods
+ .stream()
+ .map(ClientAuthenticationMethod::new)
+ .collect(Collectors.toUnmodifiableSet());
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java
index 25fcfa1..93bfbc1 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/core/OIDCAuthenticationRequest.java
@@ -17,7 +17,6 @@ package net.shibboleth.oidc.profile.core;
import java.net.URI;
import java.time.Duration;
import java.time.Instant;
-import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
@@ -301,7 +300,7 @@ public class OIDCAuthenticationRequest extends OAuthAuthorizationRequest {
* @return the acrs.
*/
@Nonnull @NotLive @Unmodifiable public List<ACR> getAcrs() {
- return Collections.unmodifiableList(acrs);
+ return CollectionSupport.copyToList(acrs);
}
/**
@@ -311,7 +310,7 @@ public class OIDCAuthenticationRequest extends OAuthAuthorizationRequest {
*/
public void setAcrs(@Nullable final List<ACR> theAcrs) {
if (theAcrs != null) {
- acrs = Collections.unmodifiableList(theAcrs);
+ acrs = CollectionSupport.copyToList(theAcrs);
}
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java
index fa558c5..25ed8e1 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AccessTokenProducingProfileConfiguration.java
@@ -66,7 +66,7 @@ public interface OAuth2AccessTokenProducingProfileConfiguration extends OAuth2Pr
* @since 2.1.0
*/
@ConfigurationSetting(name="accessTokenClaimsSetManipulationStrategy")
- @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+ @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getAccessTokenClaimsSetManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java
index ba20b78..e4bc5fe 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2AuthorizationCodeProducingProfileConfiguration.java
@@ -55,7 +55,7 @@ public interface OAuth2AuthorizationCodeProducingProfileConfiguration extends OA
* @since 2.1.0
*/
@ConfigurationSetting(name="authorizationCodeClaimsSetManipulationStrategy")
- @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+ @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getAuthorizationCodeClaimsSetManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java
index 66e9a27..ad814fb 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableClientProfileConfiguration.java
@@ -14,7 +14,6 @@
package net.shibboleth.oidc.profile.oauth2.config;
-import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -42,7 +41,7 @@ public interface OAuth2ClientAuthenticableClientProfileConfiguration
* @since 2.2.0
*/
@ConfigurationSetting(name="tokenEndpointAuthMethod")
- @Nonnull String getTokenEndpointAuthMethod(@Nullable final ProfileRequestContext profileRequestContext);
+ @Nullable String getTokenEndpointAuthMethod(@Nullable final ProfileRequestContext profileRequestContext);
/**
* Get the client credential for the given context. Typically a client_secret
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java
index 9cfc7c6..48a6038 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2ClientAuthenticableProfileConfiguration.java
@@ -67,6 +67,6 @@ public interface OAuth2ClientAuthenticableProfileConfiguration
* @since 3.0.0
*/
@ConfigurationSetting(name="unregisteredClientPolicy")
- @Nullable @Unmodifiable Map<String, UnregisteredClientPolicy> getUnregisteredClientPolicy(
+ @Nonnull @Unmodifiable Map<String, UnregisteredClientPolicy> getUnregisteredClientPolicy(
@Nullable final ProfileRequestContext profileRequestContext);
}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java
index e49d9ad..66d48b9 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenConfiguration.java
@@ -75,7 +75,7 @@ public interface OAuth2TokenConfiguration extends OIDCSSOProviderConfiguration {
*/
// TODO: move to OAuth2RefreshTokenProducingProfileConfiguration in 3.0.0
@ConfigurationSetting(name="refreshTokenClaimsSetManipulationStrategy")
- @Nonnull BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+ @Nullable BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getRefreshTokenClaimsSetManipulationStrategy(@Nullable final ProfileRequestContext profileRequestContext);
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
index 124f803..c3c4ef9 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationConfiguration.java
@@ -58,6 +58,7 @@ public interface OAuth2TokenRevocationConfiguration extends OAuth2TokenValidatin
* @since 2.1.0
*/
@ConfigurationSetting(name="revocationMethod")
+ @Nullable
OAuth2TokenRevocationMethod getRevocationMethod(@Nullable final ProfileRequestContext profileRequestContext);
/**
diff --git a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java
index f219fb5..5e0f3ce 100644
--- a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java
+++ b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest.java
@@ -30,6 +30,7 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.RequestedPrincipalContext;
import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
import net.shibboleth.oidc.authn.principal.AuthenticationContextClassReferencePrincipal;
+import net.shibboleth.shared.collection.CollectionSupport;
/** Tests for ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunction.*/
@SuppressWarnings("javadoc")
@@ -59,7 +60,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest {
final List<Principal> requestedPrincipals =
- List.of(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"));
+ CollectionSupport.listOf(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"));
rpc.setRequestedPrincipals(requestedPrincipals);
rpc.setOperator("exact");
@@ -81,7 +82,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest {
// The second principal is passed-through as no mapping exists
final List<Principal> requestedPrincipals =
- List.of(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
+ CollectionSupport.listOf(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
new AuthnContextClassRefPrincipal("http://example.org/ac/classes/pass-through"));
rpc.setRequestedPrincipals(requestedPrincipals);
rpc.setOperator("exact");
@@ -106,7 +107,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassLookupFunctionTest {
// The second principal is passed-through as no mapping exists
final List<Principal> requestedPrincipals =
- List.of(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
+ CollectionSupport.listOf(new AuthnContextClassRefPrincipal("http://example.org/ac/classes/mfa"),
new AuthnContextClassRefPrincipal("http://example.org/ac/classes/pass-through"));
rpc.setRequestedPrincipals(requestedPrincipals);
rpc.setOperator("exact");
diff --git a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java
index cee567e..48466f6 100644
--- a/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java
+++ b/oidc-common-profile-api/src/test/java/net/shibboleth/oidc/profile/config/navigate/ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunctionTest.java
@@ -61,7 +61,7 @@ public class ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFuncti
final Map<String,Collection<Principal>> mappings = new HashMap<>();
mappings.put(
"pwd",
- List.of(new AuthenticationMethodPrincipal
+ CollectionSupport.listOf(new AuthenticationMethodPrincipal
("urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport")));
function = new ProxyAwareDefaultOIDCAuthenticationContextClassResponseLookupFunction(mappings);
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java
index 4d61fa6..b11576b 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/audit/impl/DateBasedJWTClaimAuditExtractor.java
@@ -41,7 +41,9 @@ public class DateBasedJWTClaimAuditExtractor extends AbstractClaimsSetAuditExtra
/** Constructor.*/
public DateBasedJWTClaimAuditExtractor() {
- dateTimeFormatter = DateTimeFormatter.ISO_INSTANT;
+ final DateTimeFormatter isoInstant = DateTimeFormatter.ISO_INSTANT;
+ assert isoInstant != null;
+ dateTimeFormatter = isoInstant;
}
/**
@@ -51,9 +53,15 @@ public class DateBasedJWTClaimAuditExtractor extends AbstractClaimsSetAuditExtra
*/
public void setDateTimeFormat(@Nullable @NotEmpty final String format) {
ifInitializedThrowUnmodifiabledComponentException();
-
- if (StringSupport.trimOrNull(format) != null) {
- dateTimeFormatter = DateTimeFormatter.ofPattern(StringSupport.trimOrNull(format));
+
+ final String trimmedFormat = StringSupport.trimOrNull(format);
+ if (trimmedFormat != null) {
+ final DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(trimmedFormat);
+ if (timeFormatter != null) {
+ dateTimeFormatter = timeFormatter;
+ } else {
+ log.warn("Could not build a formatter from pattern {}", trimmedFormat);
+ }
}
}
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
index 3e61d08..3d3e9d5 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/AbstractOIDCSSOConfiguration.java
@@ -263,10 +263,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
* @param lifetime lifetime of an id token in milliseconds
*/
public void setIDTokenLifetime(@Positive @Nonnull final Duration lifetime) {
- Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+ final Duration idTokenLifetime = Constraint.isNotNull(lifetime, "ID token lifetime cannot be null");
+ Constraint.isTrue(!idTokenLifetime.isZero() && !idTokenLifetime.isNegative(),
"ID token lifetime must be greater than 0");
- idTokenLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+ idTokenLifetimeLookupStrategy = FunctionSupport.constant(idTokenLifetime);
}
/**
@@ -324,10 +325,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
* @param lifetime lifetime of an access token in milliseconds
*/
public void setAccessTokenLifetime(@Positive @Nonnull final Duration lifetime) {
- Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+ final Duration tokenLifetime = Constraint.isNotNull(lifetime, "Access token lifetime cannot be null");
+ Constraint.isTrue(!tokenLifetime.isZero() && !tokenLifetime.isNegative(),
"Access token lifetime must be greater than 0");
- accessTokenLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+ accessTokenLifetimeLookupStrategy = FunctionSupport.constant(tokenLifetime);
}
/**
@@ -360,10 +362,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
* @since 2.2.0
*/
public void setRefreshTokenTimeout(@Nonnull @Positive final Duration timeout) {
- Constraint.isTrue(timeout != null && !timeout.isZero() && !timeout.isNegative(),
+ final Duration tokenTimeout = Constraint.isNotNull(timeout, "Refresh token timeout cannot be null");
+ Constraint.isTrue(!tokenTimeout.isZero() && !timeout.isNegative(),
"Refresh token timeout must be greater than 0");
- refreshTokenTimeoutLookupStrategy = FunctionSupport.constant(timeout);
+ refreshTokenTimeoutLookupStrategy = FunctionSupport.constant(tokenTimeout);
}
/**
@@ -398,10 +401,11 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
* @since 2.2.0
*/
public void setRefreshTokenChainLifetime(@Nonnull @Positive final Duration lifetime) {
- Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+ final Duration chainLifetime = Constraint.isNotNull(lifetime, "Refresh token chain lifetime cannot be null");
+ Constraint.isTrue(!chainLifetime.isZero() && !chainLifetime.isNegative(),
"Refresh token chain lifetime must be greater than 0");
- refreshTokenChainLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+ refreshTokenChainLifetimeLookupStrategy = FunctionSupport.constant(chainLifetime);
}
/**
@@ -527,7 +531,7 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
/** {@inheritDoc} */
@Override
- @Nonnull
+ @Nullable
public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>> getIDTokenManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext) {
return idTokenManipulationStrategyLookupStrategy.apply(profileRequestContext);
@@ -560,7 +564,7 @@ public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwa
/** {@inheritDoc} */
@Override
- @Nonnull
+ @Nullable
public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getAccessTokenClaimsSetManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext) {
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
index 1d887d4..58abba0 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCAuthorizationConfiguration.java
@@ -399,10 +399,11 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
* @param lifetime lifetime of authz code
*/
public void setAuthorizeCodeLifetime(@Positive @Nonnull final Duration lifetime) {
- Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+ final Duration codeLifetime = Constraint.isNotNull(lifetime, "Authorization code lifetime cannot be null");
+ Constraint.isTrue(!codeLifetime.isZero() && !codeLifetime.isNegative(),
"Authorization code lifetime must be greater than 0");
- authorizeCodeLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+ authorizeCodeLifetimeLookupStrategy = FunctionSupport.constant(codeLifetime);
}
/**
@@ -431,7 +432,7 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
*
* @param method the HTTP method to set, either POST or GET.
*/
- public void setHttpRequestMethod(@Nonnull @NotEmpty final HttpRequestMethod method){
+ public void setHttpRequestMethod(@Nullable final HttpRequestMethod method){
httpRequestMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
}
@@ -587,7 +588,7 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
/** {@inheritDoc} */
@Override
- @Nonnull
+ @Nullable
public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getAuthorizationCodeClaimsSetManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext) {
@@ -729,10 +730,11 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
* @since 2.2.0
*/
public void setMaxAuthenticationAge(@Positive @Nonnull final Duration age) {
- Constraint.isTrue(age != null && !age.isZero() && !age.isNegative(),
+ final Duration maxAge = Constraint.isNotNull(age, "Max authentication age cannot be null");
+ Constraint.isTrue(!maxAge.isZero() && !maxAge.isNegative(),
"Max age must be greater than 0");
- maxAuthenticationAgeLookupStrategy = FunctionSupport.constant(age);
+ maxAuthenticationAgeLookupStrategy = FunctionSupport.constant(maxAge);
}
/**
@@ -796,7 +798,7 @@ public class DefaultOIDCAuthorizationConfiguration extends AbstractOIDCSSOConfig
*
* @since 2.2.0
*/
- public void setUserInfoHttpRequestMethod(@Nonnull @NotEmpty final HttpRequestMethod method){
+ public void setUserInfoHttpRequestMethod(@Nullable final HttpRequestMethod method){
userInfoHttpRequestMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
}
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
index 1356701..6b415cd 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
@@ -23,8 +23,6 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
-import com.google.common.base.Predicates;
-
import net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration;
import net.shibboleth.idp.session.SPSession;
import net.shibboleth.oidc.profile.config.OIDCLogoutProfileConfiguration;
@@ -32,6 +30,7 @@ import net.shibboleth.profile.config.OverriddenIssuerProfileConfiguration;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.logic.PredicateSupport;
/**
* Implementation of a profile configuration for the OpenID Connect logout.
@@ -80,11 +79,11 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
public DefaultOIDCLogoutConfiguration(@Nonnull @NotEmpty final String profileId) {
super(profileId);
issuerLookupStrategy = FunctionSupport.constant(null);
- encryptionOptionalPredicate = Predicates.alwaysTrue();
- preferFrontChannelPredicate = Predicates.alwaysTrue();
- frontChannelSuccessPredicate = Predicates.alwaysFalse();
- revokeTokensPredicate = Predicates.alwaysTrue();
- requireIdTokenHintPredicate = Predicates.alwaysTrue();
+ encryptionOptionalPredicate = PredicateSupport.alwaysTrue();
+ preferFrontChannelPredicate = PredicateSupport.alwaysTrue();
+ frontChannelSuccessPredicate = PredicateSupport.alwaysFalse();
+ revokeTokensPredicate = PredicateSupport.alwaysTrue();
+ requireIdTokenHintPredicate = PredicateSupport.alwaysTrue();
logoutHintMatchingStrategyLookupStrategy = FunctionSupport.constant((str, session) -> false);
}
@@ -122,7 +121,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
* @param flag flag to set
*/
public void setEncryptionOptional(final boolean flag) {
- encryptionOptionalPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+ encryptionOptionalPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
}
/**
@@ -145,7 +144,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
* @param flag flag to set
*/
public void setPreferFrontChannel(final boolean flag) {
- preferFrontChannelPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+ preferFrontChannelPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
}
/**
@@ -168,7 +167,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
* @param flag flag to set
*/
public void setFrontChannelSuccess(final boolean flag) {
- frontChannelSuccessPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+ frontChannelSuccessPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
}
/**
@@ -192,7 +191,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
* @param flag flag to set
*/
public void setRevokeTokens(final boolean flag) {
- revokeTokensPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+ revokeTokensPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
}
/**
@@ -216,7 +215,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
* @param flag flag to set
*/
public void setRequireIdTokenHint(final boolean flag) {
- requireIdTokenHintPredicate = flag ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+ requireIdTokenHintPredicate = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
}
/**
@@ -233,7 +232,8 @@ public class DefaultOIDCLogoutConfiguration extends AbstractInterceptorAwareProf
@Override
public BiPredicate<String,SPSession> getLogoutHintMatchingStrategy(
@Nullable final ProfileRequestContext profileRequestContext) {
- return logoutHintMatchingStrategyLookupStrategy.apply(profileRequestContext);
+ return Constraint.isNotNull(logoutHintMatchingStrategyLookupStrategy.apply(profileRequestContext),
+ "Logout hint matching strategy cannot be null");
}
/**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java
index 708436f..c129147 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPPostAuthnResponseDecoder.java
@@ -52,7 +52,8 @@ public class HTTPPostAuthnResponseDecoder extends AbstractHttpServletRequestMess
final MessageContext messageContext = new MessageContext();
final HttpServletRequest request = getHttpServletRequest();
-
+
+ assert request != null;
if (!"POST".equalsIgnoreCase(request.getMethod())) {
throw new MessageDecodingException("This message decoder only supports the HTTP POST method");
}
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java
index c3e0ae6..ec8e016 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/decoding/impl/HTTPRedirectAuthnResponseDecoder.java
@@ -53,7 +53,8 @@ public class HTTPRedirectAuthnResponseDecoder extends AbstractHttpServletRequest
final MessageContext messageContext = new MessageContext();
final HttpServletRequest request = getHttpServletRequest();
-
+
+ assert request != null;
if (!"GET".equalsIgnoreCase(request.getMethod())) {
throw new MessageDecodingException("This message decoder only supports the HTTP GET method");
}
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java
index 63f146d..3b54a30 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoder.java
@@ -105,7 +105,9 @@ public class HTTPRedirectAuthnRequestEncoder extends AbstractOIDCMessageEncoder
if (uri == null) {
throw new MessageEncodingException("No Endpoint URI available.");
}
- urlBuilder = new URLBuilder(uri.toString());
+ final String uriValue = uri.toString();
+ assert uriValue != null;
+ urlBuilder = new URLBuilder(uriValue);
} catch (final MalformedURLException e) {
throw new MessageEncodingException("Endpoint URL " + request.getEndpointURI() + " is not a valid URL", e);
}
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java
index 6b915b3..36d3a8b 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/AbstractBuildErrorResponseFromEvent.java
@@ -159,6 +159,7 @@ public abstract class AbstractBuildErrorResponseFromEvent<T extends ErrorRespons
log.debug("{} No mapped event found for {}, creating general {}", getLogPrefix(), event, defaultCode);
error = new ErrorObject(defaultCode, event, defaultStatusCode);
}
+ assert error != null;
final ErrorResponse errorResponse = buildErrorResponse(error, profileRequestContext);
if (errorResponse != null) {
profileRequestContext.ensureOutboundMessageContext()
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java
index d46474c..6126344 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTDecryptionParameters.java
@@ -91,9 +91,11 @@ public class PopulateJWTDecryptionParameters extends AbstractProfileAction {
*/
public PopulateJWTDecryptionParameters() {
// Create context by default.
- securityParametersContextLookupStrategy =
+ final Function<ProfileRequestContext,SecurityParametersContext> spcls =
new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
new InboundMessageContextLookup());
+ assert spcls != null;
+ securityParametersContextLookupStrategy = spcls;
oidcClientMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class).compose(
new InboundMessageContextLookup());
relyingPartyContextLookupStrategy = new ChildContextLookup<>(RelyingPartyContext.class);
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java
index c2c46ca..51c4eeb 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTEncryptionParameters.java
@@ -118,9 +118,11 @@ public class PopulateJWTEncryptionParameters extends AbstractProfileAction {
public PopulateJWTEncryptionParameters() {
forFriendlyName = "not-specified";
encryptionOptionalPredicate = new EncryptionOptionalPredicate();
- securityParametersContextLookupStrategy =
+ final Function<ProfileRequestContext,SecurityParametersContext> spcls =
new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
new OutboundMessageContextLookup());
+ assert spcls != null;
+ securityParametersContextLookupStrategy = spcls;
oidcClientMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class);
oidcProviderMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCProviderMetadataContext.class);
relyingPartyContextLookupStrategy = new ChildContextLookup<>(RelyingPartyContext.class);
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java
index e426a43..cb8981d 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParameters.java
@@ -95,10 +95,12 @@ public class PopulateJWTSignatureSigningParameters
setErrorEvent(EventIds.INVALID_SEC_CFG);
// Create context by default on the outbound context
- securityParametersContextLookupStrategy =
+ final Function<ProfileRequestContext,SecurityParametersContext> spcls =
new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
new OutboundMessageContextLookup());
-
+ assert spcls != null;
+ securityParametersContextLookupStrategy = spcls;
+
noResultIsError = false;
}
@@ -210,9 +212,7 @@ public class PopulateJWTSignatureSigningParameters
assert configurationLookupStrategy != null;
delegate.setConfigurationLookupStrategy(adaptRequired(configurationLookupStrategy));
- if (securityParametersContextLookupStrategy != null) {
- delegate.setSecurityParametersContextLookupStrategy(adaptRequired(securityParametersContextLookupStrategy));
- }
+ delegate.setSecurityParametersContextLookupStrategy(adaptRequired(securityParametersContextLookupStrategy));
delegate.setExistingParametersContextLookupStrategy(adapt(existingParametersContextLookupStrategy));
if (oidcClientMetadataContextLookupStrategy != null) {
delegate.setClientMetadataContextLookupStrategy(adaptRequired(oidcClientMetadataContextLookupStrategy));
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java
index f37e37e..e1f0390 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureSigningParametersHandler.java
@@ -110,11 +110,16 @@ public class PopulateJWTSignatureSigningParametersHandler extends AbstractMessag
oidcClientMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class);
// Locate directly under input context.
oidcProviderMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCProviderMetadataContext.class);
- relyingPartyContextLookupStrategy = new ChildContextLookup<>(RelyingPartyContext.class)
+ final Function<MessageContext, RelyingPartyContext> rpcls = new ChildContextLookup<>(RelyingPartyContext.class)
.compose(new RecursiveTypedParentContextLookup<>(ProfileRequestContext.class));
+ assert rpcls != null;
+ relyingPartyContextLookupStrategy = rpcls;
// Default: msg context -> SAMLPeerEntityContext -> SAMLMetadataContext
- metadataContextLookupStrategy = new ChildContextLookup<>(SAMLMetadataContext.class).compose(
- new ChildContextLookup<>(SAMLPeerEntityContext.class));
+ final Function<MessageContext, SAMLMetadataContext> mcls =
+ new ChildContextLookup<>(SAMLMetadataContext.class).compose(
+ new ChildContextLookup<>(SAMLPeerEntityContext.class));
+ assert mcls != null;
+ metadataContextLookupStrategy = mcls;
}
/**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java
index 31c6412..000448a 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/impl/PopulateJWTSignatureValidationParameters.java
@@ -70,9 +70,11 @@ public class PopulateJWTSignatureValidationParameters
super(PopulateJWTSignatureValidationParametersHandler.class, strategy);
// Create context by default.
- securityParametersContextLookupStrategy =
+ final Function<ProfileRequestContext,SecurityParametersContext> spcls =
new ChildContextLookup<>(SecurityParametersContext.class, true).compose(
new InboundMessageContextLookup());
+ assert spcls != null;
+ securityParametersContextLookupStrategy = spcls;
}
/**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java
index 103c952..ed3a2b5 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/ClientIDFromOIDCMetadataContextLookupFunction.java
@@ -43,8 +43,11 @@ public class ClientIDFromOIDCMetadataContextLookupFunction
* Constructor.
*/
public ClientIDFromOIDCMetadataContextLookupFunction() {
- oidcMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCMetadataContext.class).compose(
- new InboundMessageContextLookup());
+ final Function<ProfileRequestContext, OIDCMetadataContext> omcls =
+ new ChildContextLookup<>(OIDCMetadataContext.class).compose(
+ new InboundMessageContextLookup());
+ assert omcls != null;
+ oidcMetadataContextLookupStrategy = omcls;
}
/**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java
index 7dc1be5..768cab4 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/logic/IssuerIDFromOIDCProviderMetadataContextLookupFunction.java
@@ -43,8 +43,11 @@ public class IssuerIDFromOIDCProviderMetadataContextLookupFunction
* Constructor.
*/
public IssuerIDFromOIDCProviderMetadataContextLookupFunction() {
- oidcMetadataContextLookupStrategy = new ChildContextLookup<>(OIDCProviderMetadataContext.class).compose(
- new InboundMessageContextLookup());
+ final Function<ProfileRequestContext, OIDCProviderMetadataContext> omcls =
+ new ChildContextLookup<>(OIDCProviderMetadataContext.class).compose(
+ new InboundMessageContextLookup());
+ assert omcls != null;
+ oidcMetadataContextLookupStrategy = omcls;
}
/**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java
index 79a0e9c..e9761db 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2ClientAuthenticableProfileConfiguration.java
@@ -152,7 +152,8 @@ public abstract class AbstractOAuth2ClientAuthenticableProfileConfiguration
/** {@inheritDoc} */
@Override
@Nonnull public String getTokenEndpointAuthMethod(@Nullable final ProfileRequestContext profileRequestContext) {
- return tokenEndpointAuthMethodLookupStrategy.apply(profileRequestContext);
+ return Constraint.isNotNull(tokenEndpointAuthMethodLookupStrategy.apply(profileRequestContext),
+ "Token endpoint auth method cannot be null");
}
/**
@@ -445,10 +446,15 @@ public abstract class AbstractOAuth2ClientAuthenticableProfileConfiguration
/** {@inheritDoc} */
@Override
- @Nullable @Unmodifiable
+ @Nonnull @Unmodifiable
public Map<String,UnregisteredClientPolicy> getUnregisteredClientPolicy(
@Nullable final ProfileRequestContext profileRequestContext) {
- return unregisteredClientPolicyLookupStrategy.apply(profileRequestContext);
+ final Map<String,UnregisteredClientPolicy> result =
+ unregisteredClientPolicyLookupStrategy.apply(profileRequestContext);
+ if (result == null) {
+ return CollectionSupport.emptyMap();
+ }
+ return CollectionSupport.copyToMap(result);
}
/**
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java
index 72d9cff..aa95120 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenAudienceConfiguration.java
@@ -217,10 +217,11 @@ public class DefaultOAuth2TokenAudienceConfiguration extends AbstractInterceptor
* @param lifetime lifetime of an access token in milliseconds
*/
public void setAccessTokenLifetime(@Positive @Nonnull final Duration lifetime) {
- Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+ final Duration tokenLifetime = Constraint.isNotNull(lifetime, "Access token lifetime cannot be null");
+ Constraint.isTrue(!tokenLifetime.isZero() && !tokenLifetime.isNegative(),
"Access token lifetime must be greater than 0");
- accessTokenLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+ accessTokenLifetimeLookupStrategy = FunctionSupport.constant(tokenLifetime);
}
/**
@@ -236,7 +237,7 @@ public class DefaultOAuth2TokenAudienceConfiguration extends AbstractInterceptor
/** {@inheritDoc} */
// TODO: This was added in 2.2.0 to be compatible with the access token interface
@Override
- @Nonnull public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
+ @Nullable public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getAccessTokenClaimsSetManipulationStrategy(@Nullable final ProfileRequestContext profileRequestContext) {
return accessTokenClaimsSetManipulationStrategyLookupStrategy.apply(profileRequestContext);
}
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
index 21ece91..a235592 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenConfiguration.java
@@ -117,7 +117,7 @@ public class DefaultOAuth2TokenConfiguration extends AbstractOIDCSSOConfiguratio
/** {@inheritDoc} */
@Override
- @Nonnull
+ @Nullable
public BiFunction<ProfileRequestContext,Map<String,Object>,Map<String,Object>>
getRefreshTokenClaimsSetManipulationStrategy(
@Nullable final ProfileRequestContext profileRequestContext) {
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java
index 755ae0d..9c85082 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/DefaultOAuth2TokenRevocationConfiguration.java
@@ -84,7 +84,7 @@ public class DefaultOAuth2TokenRevocationConfiguration extends AbstractOAuth2Tok
*
* @since 2.1.0
*/
- public void setRevocationMethod(@Nonnull @NotEmpty final OAuth2TokenRevocationMethod method) {
+ public void setRevocationMethod(@Nullable final OAuth2TokenRevocationMethod method) {
revocationMethodLookupStrategy = FunctionSupport.constant(method != null ? method.toString() : null);
}
@@ -136,10 +136,11 @@ public class DefaultOAuth2TokenRevocationConfiguration extends AbstractOAuth2Tok
* @since 2.1.0
*/
public void setRevocationLifetime(@Positive @Nonnull final Duration lifetime) {
- Constraint.isTrue(lifetime != null && !lifetime.isZero() && !lifetime.isNegative(),
+ final Duration revocationLifetime = Constraint.isNotNull(lifetime, "Revocation lifetime cannot be null");
+ Constraint.isTrue(!revocationLifetime.isZero() && !revocationLifetime.isNegative(),
"Revocation lifetime must be greater than 0");
- revocationLifetimeLookupStrategy = FunctionSupport.constant(lifetime);
+ revocationLifetimeLookupStrategy = FunctionSupport.constant(revocationLifetime);
}
}
\ No newline at end of file
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java
index 1f121a4..d1795e9 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/config/impl/OIDCCoreProtocolConfigurationTest.java
@@ -75,6 +75,7 @@ public class OIDCCoreProtocolConfigurationTest {
new AuthenticationContextClassReferencePrincipal("value")));
}
+ @SuppressWarnings("null")
@Test
void testsetRefreshTokenTimeout() {
Assert.assertEquals(config.getRefreshTokenTimeout(null), Duration.ofHours(2));
@@ -89,24 +90,28 @@ public class OIDCCoreProtocolConfigurationTest {
Assert.assertEquals(config.getRefreshTokenTimeout(null), Duration.ofMillis(100));
}
+ @SuppressWarnings("null")
@Test
void testsetRefreshTokenChainLifetime() {
config.setRefreshTokenChainLifetime(Duration.ofMillis(100));
Assert.assertEquals(config.getRefreshTokenChainLifetime(null), Duration.ofMillis(100));
}
+ @SuppressWarnings("null")
@Test
void testsetAccessTokenLifetime() {
config.setAccessTokenLifetime(Duration.ofMillis(100));
Assert.assertEquals(config.getAccessTokenLifetime(null), Duration.ofMillis(100));
}
+ @SuppressWarnings("null")
@Test
void testsetAuthorizeCodeLifetime() {
config.setAuthorizeCodeLifetime(Duration.ofMillis(100));
Assert.assertEquals(config.getAuthorizeCodeLifetime(null), Duration.ofMillis(100));
}
+ @SuppressWarnings("null")
@Test
void testsetIDTokenLifetime() {
config.setIDTokenLifetime(Duration.ofMillis(100));
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java
index fe936df..90388da 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPPostAuthnRequestEncoderTest.java
@@ -59,6 +59,7 @@ public class HTTPPostAuthnRequestEncoderTest {
private MessageContext context;
+ @SuppressWarnings("null")
@BeforeMethod public void setUp() throws Exception {
encoder = new HTTPPostAuthnRequestEncoder();
context = new MessageContext();
@@ -73,6 +74,7 @@ public class HTTPPostAuthnRequestEncoderTest {
mockResponse = new MockHttpServletResponse();
encoder.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
+ assert mockResponse != null;
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
}
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java
index 5c1739b..24aa94b 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/HTTPRedirectAuthnRequestEncoderTest.java
@@ -14,7 +14,6 @@
package net.shibboleth.oidc.profile.encoding.impl;
-import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import java.net.URI;
@@ -55,6 +54,7 @@ public class HTTPRedirectAuthnRequestEncoderTest {
private MessageContext context;
+ @SuppressWarnings("null")
@BeforeMethod public void setUp() throws Exception {
encoder = new HTTPRedirectAuthnRequestEncoder();
context = new MessageContext();
@@ -68,6 +68,7 @@ public class HTTPRedirectAuthnRequestEncoderTest {
mockResponse = new MockHttpServletResponse();
encoder.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
+ assert mockResponse != null;
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
}
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java
index 35a4f1f..8110200 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/encoding/impl/SimpleNimbusResponseEncoderTest.java
@@ -71,6 +71,7 @@ public class SimpleNimbusResponseEncoderTest {
mockResponse = new MockHttpServletResponse();
encoder.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
+ assert mockResponse != null;
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
}
diff --git a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java
index d1343b6..ccf63a9 100644
--- a/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java
+++ b/oidc-common-profile-impl/src/test/java/net/shibboleth/oidc/profile/impl/FormOutboundKeySetResponseMessageTest.java
@@ -189,7 +189,7 @@ public class FormOutboundKeySetResponseMessageTest {
private static class MockReturnAllCollectionJOSEObjectCredentialResolver implements JOSEObjectCredentialResolver {
/** List of credentials held by this resolver. */
- private final List<Credential> collection;
+ @Nonnull private final List<Credential> collection;
/**
* Constructor.
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list