[java-opensaml COMMIT] in /trunk: opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryp...

noreply at shibboleth.net noreply at shibboleth.net
Fri May 9 23:20:00 EDT 2014


Author: scantor
Date: Fri May  9 23:20:00 2014
New Revision: 3855

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3855&view=rev
Log:
Refactor security configuration handling to allow for IdP default configs.

Modified:
    trunk/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java
    trunk/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateSignatureValidationParameters.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/PopulateSignatureSigningParameters.java

Modified: trunk/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java?rev=3855&r1=3854&r2=3855&view=diff
==============================================================================
--- trunk/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java (original)
+++ trunk/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java Fri May  9 23:20:00 2014
@@ -17,20 +17,20 @@
 
 package org.opensaml.profile.action.impl;
 
+import java.util.Collections;
 import java.util.List;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import org.opensaml.profile.action.AbstractConditionalProfileAction;
 import org.opensaml.profile.action.ActionSupport;
 import org.opensaml.profile.action.EventIds;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
-import org.opensaml.xmlsec.SecurityConfigurationSupport;
 import org.opensaml.xmlsec.DecryptionConfiguration;
 import org.opensaml.xmlsec.DecryptionParameters;
 import org.opensaml.xmlsec.DecryptionParametersResolver;
+import org.opensaml.xmlsec.SecurityConfigurationSupport;
 import org.opensaml.xmlsec.context.SecurityParametersContext;
 import org.opensaml.xmlsec.criterion.DecryptionConfigurationCriterion;
 
@@ -47,7 +47,6 @@
 
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
-import com.google.common.collect.Lists;
 
 /**
  * Action that resolves and populates {@link DecryptionParameters} on a {@link SecurityParametersContext}
@@ -65,8 +64,8 @@
     /** Strategy used to look up the {@link SecurityParametersContext} to set the parameters for. */
     @Nonnull private Function<ProfileRequestContext,SecurityParametersContext> securityParametersContextLookupStrategy;
     
-    /** Strategy used to lookup a per-request {@link DecryptionConfiguration}. */
-    @Nullable private Function<ProfileRequestContext,DecryptionConfiguration> configurationLookupStrategy;
+    /** Strategy used to lookup a per-request {@link DecryptionConfiguration} list. */
+    @NonnullAfterInit private Function<ProfileRequestContext,List<DecryptionConfiguration>> configurationLookupStrategy;
     
     /** Resolver for parameters to store into context. */
     @NonnullAfterInit private DecryptionParametersResolver resolver;
@@ -96,15 +95,16 @@
     }
     
     /**
-     * Set the strategy used to look up a per-request {@link DecryptionConfiguration}.
+     * Set the strategy used to look up a per-request {@link DecryptionConfiguration} list.
      * 
      * @param strategy lookup strategy
      */
     public void setConfigurationLookupStrategy(
-            @Nullable final Function<ProfileRequestContext,DecryptionConfiguration> strategy) {
+            @Nonnull final Function<ProfileRequestContext,List<DecryptionConfiguration>> strategy) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         
-        configurationLookupStrategy = strategy;
+        configurationLookupStrategy = Constraint.isNotNull(strategy,
+                "DecryptionConfiguration lookup strategy cannot be null");
     }
     
     /**
@@ -125,6 +125,12 @@
         
         if (resolver == null) {
             throw new ComponentInitializationException("DecryptionParametersResolver cannot be null");
+        } else if (configurationLookupStrategy == null) {
+            configurationLookupStrategy = new Function<ProfileRequestContext,List<DecryptionConfiguration>>() {
+                public List<DecryptionConfiguration> apply(ProfileRequestContext input) {
+                    return Collections.singletonList(SecurityConfigurationSupport.getGlobalDecryptionConfiguration());
+                }
+            };
         }
     }
     
@@ -133,6 +139,13 @@
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
 
         log.debug("{} Resolving DecryptionParameters for request", getLogPrefix());
+
+        final List<DecryptionConfiguration> configs = configurationLookupStrategy.apply(profileRequestContext);
+        if (configs == null || configs.isEmpty()) {
+            log.error("{} No DecryptionConfigurations returned by lookup strategy", getLogPrefix());

[... 245 lines stripped ...]


More information about the commits mailing list