[java-oidc-common] 12/18: Move inherited methods onto interfaces

Phil Smart philip.smart at jisc.ac.uk
Tue Mar 28 15:26:39 UTC 2023


This is an automated email from the git hooks/post-receive script.

philsmart pushed a commit to branch dev/JCOMOIDC-66
in repository java-oidc-common.

View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=7b1a4dde7d247e328f83396dcd4ad4098fcefe78

commit 7b1a4dde7d247e328f83396dcd4ad4098fcefe78
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri Mar 24 12:10:06 2023 +0000

    Move inherited methods onto interfaces
---
 ...AuthenticationProviderProfileConfiguration.java |  8 ++-
 ...enticationRelyingPartyProfileConfiguration.java | 27 +++++++++-
 ...ationRelyingPartyProxyProfileConfiguration.java | 54 -------------------
 .../OIDCEncryptedTokenProfileConfiguration.java    | 39 --------------
 .../config/OIDCSSOProfileConfiguration.java        | 14 ++++-
 ...th2ClientAuthenticableProfileConfiguration.java |  4 +-
 .../OAuth2TokenAudienceProfileConfiguration.java   |  6 ++-
 ...uth2TokenIntrospectionProfileConfiguration.java |  3 +-
 .../config/OAuth2TokenProfileConfiguration.java    |  3 +-
 .../OAuth2TokenRevocationProfileConfiguration.java |  2 +-
 .../OAuth2TokenValidatingProfileConfiguration.java |  4 +-
 .../config/impl/AbstractOIDCSSOConfiguration.java  | 11 +---
 .../impl/OIDCAuthorizationConfiguration.java       | 12 ++---
 .../oidc/profile/config/impl/TestInterfaces.java   | 61 +++++++++++-----------
 ...th2ClientAuthenticableProfileConfiguration.java |  4 +-
 ...AbstractOAuth2TokenValidatingConfiguration.java |  3 +-
 .../impl/OAuth2TokenAudienceConfiguration.java     |  8 +--
 17 files changed, 99 insertions(+), 164 deletions(-)

diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationProviderProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationProviderProfileConfiguration.java
index 0658f1a..d82c31c 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationProviderProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationProviderProfileConfiguration.java
@@ -24,6 +24,10 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
+import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
+import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2AuthorizationCodeProducingProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenEndpointProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 
@@ -32,7 +36,9 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
  * 
  * <p>This is specific to the role of the OpenID Provider (OP).</p>
  */
-public interface OIDCAuthenticationProviderProfileConfiguration extends OIDCAuthenticationProfileConfiguration {
+public interface OIDCAuthenticationProviderProfileConfiguration extends OIDCAuthenticationProfileConfiguration,
+    OAuth2AuthorizationCodeProducingProfileConfiguration, AuthenticationProfileConfiguration, 
+    OverriddenIssuerProfileConfiguration, OAuth2TokenEndpointProfileConfiguration {
     
     /**
      * Get whether all acr claim requests should be treated as Essential.
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProfileConfiguration.java
index 1763d80..4240413 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProfileConfiguration.java
@@ -22,6 +22,8 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+
 /** 
  * Configuration of an OIDC 1.0 authentication request.
  * 
@@ -83,9 +85,30 @@ public interface OIDCAuthenticationRelyingPartyProfileConfiguration extends OIDC
      */
     boolean isEncryptRequestObject(@Nullable final ProfileRequestContext profileRequestContext);
     
+    /**
+     * Gets whether authentication results produced by use of this profile should carry the proxied
+     * assertion's auth_time from the id_token, rather than the current time.
+     *
+     * <p>Defaults to true.</p>
+     *
+     * @param profileRequestContext current profile request context
+     *
+     * @return whether to proxy across the inbound auth_time
+     * 
+     * @since 2.2.0
+     */
+    public boolean isProxiedAuthnInstant(@Nullable final ProfileRequestContext profileRequestContext);
     
+    /**
+     * Get the redirect_uri override if set.
+     *
+     * @param profileRequestContext profile request context
+     *
+     * @return the redirect_uri override
+     * 
+     * @since 2.2.0
+     */
+     @Nullable @NotEmpty String getRedirectUriOverride(@Nullable final ProfileRequestContext profileRequestContext);
 
-    
-        
 
 }
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProxyProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProxyProfileConfiguration.java
deleted file mode 100644
index 0c68284..0000000
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCAuthenticationRelyingPartyProxyProfileConfiguration.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.oidc.profile.config;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-
-/** Configuration for an OIDC authentication request specific to a Relying Party Proxy.*/
-public interface OIDCAuthenticationRelyingPartyProxyProfileConfiguration 
-                    extends OIDCAuthenticationRelyingPartyProfileConfiguration {
-    
-    /**
-     * Gets whether authentication results produced by use of this profile should carry the proxied
-     * assertion's auth_time from the id_token, rather than the current time.
-     *
-     * <p>Defaults to true.</p>
-     *
-     * @param profileRequestContext current profile request context
-     *
-     * @return whether to proxy across the inbound auth_time
-     * 
-     * @since 2.2.0
-     */
-    public boolean isProxiedAuthnInstant(@Nullable final ProfileRequestContext profileRequestContext);
-    
-    /**
-     * Get the redirect_uri override if set.
-     *
-     * @param profileRequestContext profile request context
-     *
-     * @return the redirect_uri override
-     * 
-     * @since 2.2.0
-     */
-     @Nullable @NotEmpty String getRedirectUriOverride(@Nullable final ProfileRequestContext profileRequestContext);
-}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCEncryptedTokenProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCEncryptedTokenProfileConfiguration.java
deleted file mode 100644
index d736048..0000000
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCEncryptedTokenProfileConfiguration.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.oidc.profile.config;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.profile.context.ProfileRequestContext;
-
-/**
- * Profile configuration for token endpoints that deal with token encryption.
- */
-public interface OIDCEncryptedTokenProfileConfiguration extends OIDCProfileConfiguration {
-
-    /**
-     * Get whether encryption is optional in the face of a missing key, etc.
-     * 
-     * @param profileRequestContext current profile request context
-     * 
-     * @return true iff encryption is optional
-     */
-    boolean isEncryptionOptional(@Nullable final ProfileRequestContext profileRequestContext);
-    
-
-}
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSSOProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSSOProfileConfiguration.java
index af56ea5..905fb81 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSSOProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSSOProfileConfiguration.java
@@ -22,10 +22,22 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
+import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
+import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
+import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2AccessTokenProducingProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2ClientAuthenticableProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2FlowAwareProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.OAuth2RefreshTokenProducingProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 
 /** Profile configuration generic to all OIDC SSO profiles.*/
-public interface OIDCSSOProfileConfiguration extends OIDCTokenEncryptionProfileConfiguration {
+public interface OIDCSSOProfileConfiguration extends OIDCTokenEncryptionProfileConfiguration, 
+        OIDCIDTokenProducingProfileConfiguration, AuthenticationProfileConfiguration, 
+        OverriddenIssuerProfileConfiguration, OAuth2AccessTokenProducingProfileConfiguration, 
+        OAuth2RefreshTokenProducingProfileConfiguration, AttributeResolvingProfileConfiguration,
+        OIDCFlowAwareProfileConfiguration, OAuth2FlowAwareProfileConfiguration,
+        OAuth2ClientAuthenticableProfileConfiguration {
     
     /** ID for this profile configuration. */
     @Nonnull @NotEmpty public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oidc/sso/browser";
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 39e9be1..ef07d19 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
@@ -24,6 +24,7 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
+import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
 import net.shibboleth.oidc.jwt.claims.ClaimsValidator;
 import net.shibboleth.oidc.security.credential.ClientSecretCredential;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -32,7 +33,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 
 /** OAuth 2.0 profile configurations that support OAuth-defined client authentication methods.*/
-public interface OAuth2ClientAuthenticableProfileConfiguration extends OAuth2ProfileConfiguration {
+public interface OAuth2ClientAuthenticableProfileConfiguration 
+                    extends AuthenticationProfileConfiguration, OAuth2ProfileConfiguration {
     
     /**
      * Get the {@link ClaimsValidator} to apply to JWT-based client authentication.
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceProfileConfiguration.java
index e455beb..25186e7 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenAudienceProfileConfiguration.java
@@ -19,6 +19,8 @@ package net.shibboleth.oidc.profile.oauth2.config;
 
 import javax.annotation.Nonnull;
 
+import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
+import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.oidc.profile.config.OIDCTokenEncryptionProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 
@@ -28,7 +30,9 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
  * <p>This applies to behaviour controlling the characteristics of tokens issued
  * to the parties intended to process them, as distinct from the clients that use them.</p>
  */
-public interface OAuth2TokenAudienceProfileConfiguration extends OIDCTokenEncryptionProfileConfiguration{    
+public interface OAuth2TokenAudienceProfileConfiguration extends OIDCTokenEncryptionProfileConfiguration, 
+    OverriddenIssuerProfileConfiguration, OAuth2AccessTokenProducingProfileConfiguration, 
+    AttributeResolvingProfileConfiguration {    
 
     /** OAuth2 Token Revocation URI. */
     @Nonnull @NotEmpty public static final String PROTOCOL_URI = "https://tools.ietf.org/html/rfc6749";
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenIntrospectionProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenIntrospectionProfileConfiguration.java
index effe1b9..9466449 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenIntrospectionProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenIntrospectionProfileConfiguration.java
@@ -24,7 +24,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 /**
  * Profile configuration for OAuth2 Token Introspection.
  */
-public interface OAuth2TokenIntrospectionProfileConfiguration extends OAuth2ProfileConfiguration {    
+public interface OAuth2TokenIntrospectionProfileConfiguration extends OAuth2TokenValidatingProfileConfiguration, 
+    OAuth2ProfileConfiguration {    
 
     /** OAuth2 Token Revocation URI. */
     @Nonnull @NotEmpty public static final String PROTOCOL_URI = "https://tools.ietf.org/html/rfc7662";
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenProfileConfiguration.java
index 9ca794c..3808ce8 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenProfileConfiguration.java
@@ -35,8 +35,7 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 /**
  * OIDC-aware OAuth 2.0 token endpoint profile configuration. 
  */
-public interface OAuth2TokenProfileConfiguration extends OIDCSSOProfileConfiguration, 
-        OAuth2RefreshTokenProducingProfileConfiguration {    
+public interface OAuth2TokenProfileConfiguration extends OIDCSSOProfileConfiguration {    
 
     /** ID for this profile configuration. */
     @Nonnull @NotEmpty public static final String PROFILE_ID = "http://shibboleth.net/ns/profiles/oauth2/token";    
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationProfileConfiguration.java
index 19e9faa..71bfd3b 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenRevocationProfileConfiguration.java
@@ -31,7 +31,7 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Positive;
 /**
  * Configuration for the OAuth 2.0 Token Revocation profile.
  */
-public interface OAuth2TokenRevocationProfileConfiguration extends OAuth2ProfileConfiguration {
+public interface OAuth2TokenRevocationProfileConfiguration extends OAuth2TokenValidatingProfileConfiguration {
     
     /** OAuth2 Token Revocation URI. */
     @Nonnull @NotEmpty public static final String PROTOCOL_URI = "https://tools.ietf.org/html/rfc7009";
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenValidatingProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenValidatingProfileConfiguration.java
index 7281466..4cd1ba0 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenValidatingProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/oauth2/config/OAuth2TokenValidatingProfileConfiguration.java
@@ -22,12 +22,14 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
+import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.oidc.jwt.claims.ClaimsValidator;
 
 /**
  *  Profile configuration for OIDC-aware OAuth 2.0 token endpoints. 
  */
-public interface OAuth2TokenValidatingProfileConfiguration extends OAuth2ProfileConfiguration {
+public interface OAuth2TokenValidatingProfileConfiguration extends OAuth2ClientAuthenticableProfileConfiguration,
+    OverriddenIssuerProfileConfiguration, OAuth2ProfileConfiguration {
     
     /**
      * Get the {@link ClaimsValidator} to apply to issued JWT-based tokens being validated by this profile.
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 45f4d0f..10e774e 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
@@ -33,13 +33,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 
 import com.google.common.base.Predicates;
 
-import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
-import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
-import net.shibboleth.oidc.profile.config.OIDCIDTokenProducingProfileConfiguration;
 import net.shibboleth.oidc.profile.config.OIDCSSOProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2AccessTokenProducingProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2RefreshTokenProducingProfileConfiguration;
 import net.shibboleth.oidc.profile.oauth2.config.impl.AbstractOAuth2FlowAwareProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -53,10 +47,7 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
  * Base class for profiles that support OIDC's concept of SSO, which spans multiple endpoints.
  */
 public abstract class AbstractOIDCSSOConfiguration extends AbstractOAuth2FlowAwareProfileConfiguration
-        implements OIDCSSOProfileConfiguration, OIDCIDTokenProducingProfileConfiguration,
-        AuthenticationProfileConfiguration, OverriddenIssuerProfileConfiguration, 
-        OAuth2AccessTokenProducingProfileConfiguration, OAuth2RefreshTokenProducingProfileConfiguration,
-        AttributeResolvingProfileConfiguration {
+        implements OIDCSSOProfileConfiguration {
 
     /** Lookup function to override issuer value. */
     @Nonnull private Function<ProfileRequestContext,String> issuerLookupStrategy;
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/OIDCAuthorizationConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/OIDCAuthorizationConfiguration.java
index 1d84ddd..2696ef1 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/OIDCAuthorizationConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/OIDCAuthorizationConfiguration.java
@@ -34,13 +34,9 @@ import org.opensaml.profile.context.ProfileRequestContext;
 
 import com.google.common.base.Predicates;
 
-import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
-import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationProviderProfileConfiguration;
-import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProxyProfileConfiguration;
+import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
 import net.shibboleth.oidc.profile.config.OIDCSSOProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2AuthorizationCodeProducingProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenEndpointProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
@@ -56,10 +52,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
  * <p>It is also usable as a Token endpoint configuration if no non-OIDC use cases are needed.</p>
  */
 public class OIDCAuthorizationConfiguration extends AbstractOIDCSSOConfiguration
-        implements OIDCAuthenticationRelyingPartyProxyProfileConfiguration, 
-        OIDCAuthenticationProviderProfileConfiguration, OAuth2AuthorizationCodeProducingProfileConfiguration, 
-        OAuth2TokenEndpointProfileConfiguration, AuthenticationProfileConfiguration, 
-        OverriddenIssuerProfileConfiguration {
+        implements OIDCAuthenticationRelyingPartyProfileConfiguration, 
+        OIDCAuthenticationProviderProfileConfiguration {
 
     /** Whether all acr claim requests should be treated as Essential. */
     @Nonnull private Predicate<ProfileRequestContext> acrRequestAlwaysEssentialPredicate;
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/TestInterfaces.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/TestInterfaces.java
index dd4a7a7..2c775a8 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/TestInterfaces.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/TestInterfaces.java
@@ -1,43 +1,44 @@
 
 package net.shibboleth.oidc.profile.config.impl;
 
-import org.opensaml.profile.context.ProfileRequestContext;
+import java.lang.reflect.Method;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
-import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
-import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
-import net.shibboleth.oidc.profile.config.OIDCUserInfoProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2RefreshTokenProducingProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.impl.OAuth2TokenConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.impl.OAuth2TokenIntrospectionConfiguration;
+import net.shibboleth.oidc.profile.config.OIDCFlowAwareProfileConfiguration;
+import net.shibboleth.oidc.profile.oauth2.config.impl.AbstractOAuth2FlowAwareProfileConfiguration;
 
 public class TestInterfaces {
     
     public static void main(final String args[]) {
-        final var configClass = new OAuth2TokenConfiguration();
-        if (configClass instanceof OAuth2TokenProfileConfiguration) {
-            System.out.println("Interface is: "+configClass);
-            System.out.println("Has method: "+((OAuth2TokenProfileConfiguration)configClass).getRefreshTokenLifetime(new ProfileRequestContext()));
+        final var concreteClass = new AbstractOAuth2FlowAwareProfileConfiguration();
+        final Set<String> concreteNames = new HashSet<>();
+        for (final Method m: concreteClass.getClass().getMethods()) {
+            if (m.getName().startsWith("is") || m.getName().startsWith("get")) {
+                System.out.println("CLASS:"+ m.getName());
+                concreteNames.add(m.getName());
+            }
         }
-        if (configClass instanceof OAuth2RefreshTokenProducingProfileConfiguration) {
-            System.out.println("Interface is: "+configClass);
-            System.out.println("Has method: "+((OAuth2RefreshTokenProducingProfileConfiguration)configClass).getRefreshTokenLifetime(new ProfileRequestContext()));
-        }
-        final var configClassTwo = new OAuth2TokenIntrospectionConfiguration();
-        if (configClassTwo instanceof OverriddenIssuerProfileConfiguration) {
-            System.out.println("Interface is: "+configClassTwo);
-            System.out.println("Has method: "+((OverriddenIssuerProfileConfiguration)configClassTwo).getIssuer(new ProfileRequestContext()));
-        }
-        final var configClassThree = new OIDCAuthorizationConfiguration();
-        if (configClassThree instanceof OIDCAuthenticationRelyingPartyProfileConfiguration) {
-            System.out.println("Interface is: "+configClassThree);
-            System.out.println("Has method: "+((OIDCAuthenticationRelyingPartyProfileConfiguration)configClassThree).getResponseMode(new ProfileRequestContext()));
-        }
-        final var configClassFour = new OIDCUserInfoConfiguration();
-        if (configClassFour instanceof OIDCUserInfoProfileConfiguration) {
-            System.out.println("Interface is: "+configClassFour);
-            System.out.println("Has method: "+((OIDCUserInfoProfileConfiguration)configClassFour).isEncryptionOptional(new ProfileRequestContext()));
+        final Set<String> interfaceNames = new HashSet<>();
+        for (final Method m: OIDCFlowAwareProfileConfiguration.class.getMethods()) {
+            if (m.getName().startsWith("is") || m.getName().startsWith("get")) {
+                System.out.println("INT: "+m.getName());
+                interfaceNames.add(m.getName());
+            }
         }
+        final List<String> inClassNotInterface = 
+                concreteNames.stream().filter(v -> !interfaceNames.contains(v)).collect(Collectors.toList());
+        
+        inClassNotInterface.forEach(v -> System.out.println("Missing in interface: "+v));
+        
+        final List<String> inInterfaceNotClass = 
+                interfaceNames.stream().filter(v -> !concreteNames.contains(v)).collect(Collectors.toList());
+        
+        inInterfaceNotClass.forEach(v -> System.out.println("Missing in class: "+v));
+        
+        
     }
 
 }
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 97e86a7..2f51f22 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
@@ -33,7 +33,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import com.google.common.base.Predicates;
 import com.nimbusds.oauth2.sdk.auth.ClientAuthenticationMethod;
 
-import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
 import net.shibboleth.idp.profile.config.AbstractConditionalProfileConfiguration;
 import net.shibboleth.oidc.authn.principal.AuthenticationContextClassReferencePrincipal;
 import net.shibboleth.oidc.jwt.claims.ClaimsValidator;
@@ -52,8 +51,7 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
  * Base class for OAuth profile configurations that support OAuth-defined client authentication methods.
  */
 public abstract class AbstractOAuth2ClientAuthenticableProfileConfiguration
-        extends AbstractConditionalProfileConfiguration implements OAuth2ClientAuthenticableProfileConfiguration,
-        AuthenticationProfileConfiguration {
+        extends AbstractConditionalProfileConfiguration implements OAuth2ClientAuthenticableProfileConfiguration {
 
     /** Enabled token endpoint authentication methods. */
     @Nonnull private Function<ProfileRequestContext,Set<String>> tokenEndpointAuthMethodsLookupStrategy;
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2TokenValidatingConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2TokenValidatingConfiguration.java
index 59280d8..4a826fb 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2TokenValidatingConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/AbstractOAuth2TokenValidatingConfiguration.java
@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 
-import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
 import net.shibboleth.oidc.jwt.claims.ClaimsValidator;
 import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenValidatingProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -37,7 +36,7 @@ import net.shibboleth.utilities.java.support.logic.FunctionSupport;
  * @since 2.0.0
  */
 public class AbstractOAuth2TokenValidatingConfiguration extends AbstractOAuth2ClientAuthenticableProfileConfiguration
-        implements OAuth2TokenValidatingProfileConfiguration, OverriddenIssuerProfileConfiguration {
+        implements OAuth2TokenValidatingProfileConfiguration {
 
     /** Lookup function to override issuer value. */
     @Nonnull private Function<ProfileRequestContext,String> issuerLookupStrategy;
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/OAuth2TokenAudienceConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/OAuth2TokenAudienceConfiguration.java
index fbbe930..bacac03 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/OAuth2TokenAudienceConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/oauth2/config/impl/OAuth2TokenAudienceConfiguration.java
@@ -31,9 +31,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import com.google.common.base.Predicates;
 
 import net.shibboleth.idp.profile.config.AbstractConditionalProfileConfiguration;
-import net.shibboleth.idp.profile.config.AttributeResolvingProfileConfiguration;
-import net.shibboleth.idp.profile.config.OverriddenIssuerProfileConfiguration;
-import net.shibboleth.oidc.profile.oauth2.config.OAuth2AccessTokenProducingProfileConfiguration;
 import net.shibboleth.oidc.profile.oauth2.config.OAuth2TokenAudienceProfileConfiguration;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.Positive;
@@ -44,9 +41,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 /**
  * Implementation of an OAuth 2.0 token "audience" profile configuration.
  */
-public class OAuth2TokenAudienceConfiguration  extends AbstractConditionalProfileConfiguration
-        implements OverriddenIssuerProfileConfiguration, OAuth2AccessTokenProducingProfileConfiguration,
-                    AttributeResolvingProfileConfiguration, OAuth2TokenAudienceProfileConfiguration {
+public class OAuth2TokenAudienceConfiguration extends AbstractConditionalProfileConfiguration
+        implements OAuth2TokenAudienceProfileConfiguration {
 
     
     /** Lookup function to override issuer value. */

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list