[java-identity-provider] branch master updated: IDP-1390 - Service layer for exposing FlowDescriptor beans
Scott Cantor
cantor.2 at osu.edu
Wed Jan 9 18:11:02 EST 2019
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=5de663be5e4d78efcf14f0c52375bfe118c25bba
The following commit(s) were added to refs/heads/master by this push:
new 5de663b IDP-1390 - Service layer for exposing FlowDescriptor beans
5de663b is described below
commit 5de663be5e4d78efcf14f0c52375bfe118c25bba
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Jan 9 18:10:59 2019 -0500
IDP-1390 - Service layer for exposing FlowDescriptor beans
https://issues.shibboleth.net/jira/browse/IDP-1390
Insert FlowDescriptor interface into class hierarchy.
---
.../idp/admin/AdministrativeFlowDescriptor.java | 3 ++-
.../idp/authn/AuthenticationFlowDescriptor.java | 4 ++-
.../SubjectCanonicalizationFlowDescriptor.java | 3 ++-
.../config/impl/AbstractProtocolConfiguration.java | 11 +-------
.../net/shibboleth/idp/profile/FlowDescriptor.java | 31 ++++++++++++++++++++++
.../config/AbstractProfileConfiguration.java | 20 +++++---------
.../ProfileInterceptorFlowDescriptor.java | 3 ++-
7 files changed, 47 insertions(+), 28 deletions(-)
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java
index f1977c6..a490e9c 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/admin/AdministrativeFlowDescriptor.java
@@ -22,6 +22,7 @@ import javax.annotation.Nullable;
import org.opensaml.saml.ext.saml2mdui.UIInfo;
import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
+import net.shibboleth.idp.profile.FlowDescriptor;
/**
* A descriptor for an administrative flow.
@@ -34,7 +35,7 @@ import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
*
* @since 3.3.0
*/
-public interface AdministrativeFlowDescriptor extends AuthenticationProfileConfiguration {
+public interface AdministrativeFlowDescriptor extends FlowDescriptor, AuthenticationProfileConfiguration {
/**
* Get a logging ID to use when auditing this profile.
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
index 9c9ff51..ba54709 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
@@ -27,6 +27,7 @@ import javax.annotation.Nullable;
import javax.security.auth.Subject;
import net.shibboleth.idp.authn.principal.PrincipalSupportingComponent;
+import net.shibboleth.idp.profile.FlowDescriptor;
import net.shibboleth.utilities.java.support.annotation.Duration;
import net.shibboleth.utilities.java.support.annotation.constraint.NonNegative;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -56,7 +57,8 @@ import com.google.common.collect.Collections2;
* </p>
*/
public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializableComponent implements
- PrincipalSupportingComponent, Predicate<ProfileRequestContext>, StorageSerializer<AuthenticationResult> {
+ FlowDescriptor, PrincipalSupportingComponent, Predicate<ProfileRequestContext>,
+ StorageSerializer<AuthenticationResult> {
/** Prefix convention for flow IDs. */
@Nonnull @NotEmpty public static final String FLOW_ID_PREFIX = "authn/";
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java
index 2fb04d3..de0437f 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/SubjectCanonicalizationFlowDescriptor.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.authn;
import javax.annotation.Nonnull;
+import net.shibboleth.idp.profile.FlowDescriptor;
import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
@@ -41,7 +42,7 @@ import com.google.common.base.Predicates;
* </p>
*/
public class SubjectCanonicalizationFlowDescriptor extends AbstractIdentifiableInitializableComponent implements
- Predicate<ProfileRequestContext> {
+ FlowDescriptor, Predicate<ProfileRequestContext> {
/** Predicate that must be true for this flow to be usable for a given request. */
@Nonnull private Predicate<ProfileRequestContext> activationCondition;
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java
index f6f8039..e319fcc 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java
@@ -49,9 +49,6 @@ public abstract class AbstractProtocolConfiguration extends AbstractConditionalP
/** CAS base protocol URI. */
public static final String PROTOCOL_URI = "https://www.apereo.org/cas/protocol";
- /** Initialization flag. */
- private boolean initialized;
-
/** Lookup function to supply {@link #ticketValidityPeriod} property. */
@Nullable private Function<ProfileRequestContext, Long> ticketValidityPeriodLookupStrategy;
@@ -85,16 +82,10 @@ public abstract class AbstractProtocolConfiguration extends AbstractConditionalP
}
/** {@inheritDoc} */
- @Override public void initialize() throws ComponentInitializationException {
+ @Override public void doInitialize() throws ComponentInitializationException {
Constraint.isNotNull(getSecurityConfiguration(), "Security configuration cannot be null.");
Constraint.isNotNull(getSecurityConfiguration().getIdGenerator(),
"Security configuration ID generator cannot be null.");
- initialized = true;
- }
-
- /** {@inheritDoc} */
- @Override public boolean isInitialized() {
- return initialized;
}
/**
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/FlowDescriptor.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/FlowDescriptor.java
new file mode 100644
index 0000000..6913d6e
--- /dev/null
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/FlowDescriptor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.idp.profile;
+
+import net.shibboleth.utilities.java.support.component.DestructableComponent;
+import net.shibboleth.utilities.java.support.component.IdentifiableComponent;
+import net.shibboleth.utilities.java.support.component.InitializableComponent;
+
+/**
+ * Marker interface for a descriptor for a webflow allowing managed injection of configuration settings.
+ *
+ * @since 4.0.0
+ */
+public interface FlowDescriptor extends IdentifiableComponent, InitializableComponent, DestructableComponent {
+
+}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java
index 2093046..90367dd 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractProfileConfiguration.java
@@ -35,14 +35,15 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** Base class for {@link ProfileConfiguration} implementations. */
-public abstract class AbstractProfileConfiguration implements ProfileConfiguration {
+public abstract class AbstractProfileConfiguration extends AbstractIdentifiableInitializableComponent
+ implements ProfileConfiguration {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AbstractProfileConfiguration.class);
@@ -50,9 +51,6 @@ public abstract class AbstractProfileConfiguration implements ProfileConfigurati
/** Access to servlet request. */
@Nullable private ServletRequest servletRequest;
- /** ID of the profile configured. */
- @Nonnull @NotEmpty private final String profileId;
-
/** Lookup function to supply {@link #inboundFlows} property. */
@Nullable private Function<ProfileRequestContext,List<String>> inboundFlowsLookupStrategy;
@@ -83,7 +81,7 @@ public abstract class AbstractProfileConfiguration implements ProfileConfigurati
* @param id ID of the communication profile, never null or empty
*/
public AbstractProfileConfiguration(@Nonnull @NotEmpty @ParameterName(name="id") final String id) {
- profileId = Constraint.isNotNull(StringSupport.trimOrNull(id), "Profile identifier cannot be null or empty");
+ setId(id);
inboundFlows = Collections.emptyList();
outboundFlows = Collections.emptyList();
}
@@ -103,12 +101,6 @@ public abstract class AbstractProfileConfiguration implements ProfileConfigurati
/** {@inheritDoc} */
@Override
- @Nonnull @NotEmpty public String getId() {
- return profileId;
- }
-
- /** {@inheritDoc} */
- @Override
@Nullable public SecurityConfiguration getSecurityConfiguration() {
return getIndirectProperty(securityConfigurationLookupStrategy, securityConfiguration);
}
@@ -245,7 +237,7 @@ public abstract class AbstractProfileConfiguration implements ProfileConfigurati
/** {@inheritDoc} */
@Override
public int hashCode() {
- return profileId.hashCode();
+ return getId().hashCode();
}
/** {@inheritDoc} */
@@ -264,7 +256,7 @@ public abstract class AbstractProfileConfiguration implements ProfileConfigurati
}
final AbstractProfileConfiguration other = (AbstractProfileConfiguration) obj;
- return Objects.equals(profileId, other.getId());
+ return Objects.equals(getId(), other.getId());
}
/**
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
index a91705c..8c02ad6 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.profile.interceptor;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import net.shibboleth.idp.profile.FlowDescriptor;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
@@ -42,7 +43,7 @@ import com.google.common.base.Predicates;
* </p>
*/
public class ProfileInterceptorFlowDescriptor extends AbstractIdentifiableInitializableComponent implements
- Predicate<ProfileRequestContext> {
+ FlowDescriptor, Predicate<ProfileRequestContext> {
/** Prefix convention for flow IDs. */
@Nonnull @NotEmpty public static final String FLOW_ID_PREFIX = "intercept/";
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list