[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