[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