[java-opensaml COMMIT] in /trunk: opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/ChainingTrust...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Apr 25 19:02:03 EDT 2014
Author: putmanb
Date: Fri Apr 25 19:02:03 2014
New Revision: 3819
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3819&view=rev
Log:
Make chaining trust engines more Spring-friendly by using a ctor arg for the chain.
getChain() now returns an immutable, non-live list.
Add missing test for ChainingSignatureTrustEngine.
Added:
trunk/opensaml-xmlsec-impl/src/test/java/org/opensaml/xmlsec/signature/support/impl/ChainingSignatureTrustEngineTest.java (with props)
Modified:
trunk/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/ChainingTrustEngine.java
trunk/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/ChainingTrustEngineTest.java
trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/signature/support/impl/ChainingSignatureTrustEngine.java
Modified: trunk/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/ChainingTrustEngine.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/ChainingTrustEngine.java?rev=3819&r1=3818&r2=3819&view=diff
==============================================================================
--- trunk/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/ChainingTrustEngine.java (original)
+++ trunk/opensaml-security-impl/src/main/java/org/opensaml/security/trust/impl/ChainingTrustEngine.java Fri Apr 25 19:02:03 2014
@@ -17,18 +17,26 @@
package org.opensaml.security.trust.impl;
-import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+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.resolver.CriteriaSet;
import org.opensaml.security.SecurityException;
import org.opensaml.security.trust.TrustEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
/**
* Evaluate a token in sequence using a chain of subordinate trust engines. If the token may be established as trusted
@@ -44,9 +52,14 @@
/** The chain of subordinate trust engines. */
private List<TrustEngine<TokenType>> engines;
- /** Constructor. */
- public ChainingTrustEngine() {
- engines = new ArrayList<TrustEngine<TokenType>>();
+ /**
+ * Constructor.
+ *
+ * @param chain the list of trust engines in the chain
+ */
+ public ChainingTrustEngine(@Nonnull final List<TrustEngine<TokenType>> chain) {
+ Constraint.isNotNull(chain, "TrustEngine list was null");
+ engines = Lists.newArrayList(Collections2.filter(chain, Predicates.notNull()));
}
/**
@@ -54,8 +67,8 @@
*
* @return the modifiable list of trust engines in the chain
*/
- @Nonnull public List<TrustEngine<TokenType>> getChain() {
- return engines;
+ @Nonnull @NonnullElements @Unmodifiable @NotLive public List<TrustEngine<TokenType>> getChain() {
+ return ImmutableList.copyOf(engines);
}
/** {@inheritDoc} */
Modified: trunk/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/ChainingTrustEngineTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/ChainingTrustEngineTest.java?rev=3819&r1=3818&r2=3819&view=diff
==============================================================================
--- trunk/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/ChainingTrustEngineTest.java (original)
+++ trunk/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/ChainingTrustEngineTest.java Fri Apr 25 19:02:03 2014
@@ -17,6 +17,10 @@
package org.opensaml.security.trust.impl;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import org.opensaml.core.criterion.EntityIdCriterion;
@@ -35,6 +39,8 @@
private ChainingTrustEngine<FooToken> engine;
+ private List<TrustEngine<FooToken>> chain;
+
private FooToken token;
@BeforeMethod
@@ -42,7 +48,7 @@
token = new FooToken();
- engine = new ChainingTrustEngine<FooToken>();
+ chain = new ArrayList<>();
criteriaSet = new CriteriaSet();
criteriaSet.add( new EntityIdCriterion("dummyEntityID") );
@@ -50,35 +56,49 @@
@Test
public void testFirstTrusted() throws SecurityException {
- engine.getChain().add( new FooEngine(Boolean.TRUE));
[... 128 lines stripped ...]
More information about the commits
mailing list