[java-identity-provider COMMIT] in /trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl: AbstractProt...
noreply at shibboleth.net
noreply at shibboleth.net
Thu Mar 24 12:54:41 EDT 2016
Author: scantor
Date: Thu Mar 24 12:54:41 2016
New Revision: 8178
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8178&view=rev
Log:
IDP-948 - Dynamic determination of profile and relying party configuration settings
https://issues.shibboleth.net/jira/browse/IDP-948
Add dynamic support to CAS configs.
Modified:
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/ConfigLookupFunction.java
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/ProxyConfiguration.java
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/ValidateConfiguration.java
Modified: trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java?rev=8178&r1=8177&r2=8178&view=diff
==============================================================================
--- trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java (original)
+++ trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/AbstractProtocolConfiguration.java Thu Mar 24 12:54:41 2016
@@ -17,10 +17,16 @@
package net.shibboleth.idp.cas.config.impl;
-import java.util.Collections;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import org.opensaml.profile.context.ProfileRequestContext;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
import net.shibboleth.idp.cas.ticket.impl.TicketIdentifierGenerationStrategy;
import net.shibboleth.idp.profile.config.AbstractProfileConfiguration;
@@ -46,13 +52,14 @@
/** Initialization flag. */
private boolean initialized;
+ /** Lookup function to supply {@link #ticketValidityPeriod} property. */
+ @Nullable private Function<ProfileRequestContext,Long> ticketValidityPeriodLookupStrategy;
+
/** Validity time period of tickets. */
- @Duration
- @Positive
- private long ticketValidityPeriod;
+ @Duration @Positive private long ticketValidityPeriod;
- /** Flag to indicate whether attributes should be resolved for this profile. */
- private boolean resolveAttributes = true;
+ /** Whether attributes should be resolved in the course of the profile. */
+ @Nonnull private Predicate<ProfileRequestContext> resolveAttributesPredicate;
/**
* Creates a new configuration instance.
@@ -61,12 +68,15 @@
*/
public AbstractProtocolConfiguration(@Nonnull @NotEmpty final String profileId) {
super(profileId);
+ resolveAttributesPredicate = Predicates.alwaysTrue();
+ ticketValidityPeriod = 15000L;
setSecurityConfiguration(
new SecurityConfiguration(
TimeUnit.MILLISECONDS.convert(5, TimeUnit.MINUTES),
new TicketIdentifierGenerationStrategy(getDefaultTicketPrefix(), getDefaultTicketLength())));
}
+ /** {@inheritDoc} */
@Override
public void initialize() throws ComponentInitializationException {
Constraint.isNotNull(getSecurityConfiguration(), "Security configuration cannot be null.");
@@ -75,17 +85,22 @@
initialized = true;
}
+ /** {@inheritDoc} */
@Override
public boolean isInitialized() {
return initialized;
}
/**
+ * Get ticket validity period.
+ *
* @return Ticket validity period in milliseconds.
*/
@Positive
public long getTicketValidityPeriod() {
- return ticketValidityPeriod;
+ return Constraint.isGreaterThan(0,
+ getIndirectProperty(ticketValidityPeriodLookupStrategy, ticketValidityPeriod),
+ "Ticket validity period must be positive.");
}
/**
@@ -94,26 +109,71 @@
* @param millis Ticket validity period in milliseconds.
*/
public void setTicketValidityPeriod(@Duration @Positive final long millis) {
- this.ticketValidityPeriod = Constraint.isGreaterThan(0, millis, "Ticket validity period must be positive.");
- }
-
- /** @return True if attribute resolution enabled for this profile, false otherwise. */
- public boolean isResolveAttributes() {
- return resolveAttributes;
+ ticketValidityPeriod = Constraint.isGreaterThan(0, millis, "Ticket validity period must be positive.");
}
/**
- * Enables or disables attribute resolution.
+ * Set a lookup strategy for the {@link #ticketValidityPeriod} property.
*
- * @param resolveAttributes True to enable attribute resolution (default), false otherwise.
+ * @param strategy lookup strategy
*/
[... 584 lines stripped ...]
More information about the commits
mailing list