[java-identity-provider COMMIT] in /trunk: idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/res...

noreply at shibboleth.net noreply at shibboleth.net
Tue Jan 28 05:19:47 EST 2014


Author: rdw
Date: Tue Jan 28 05:19:47 2014
New Revision: 5252

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5252&view=rev
Log:
IDP-359 Add embedded predicate class NameID C14N to simplify testing in pre-execute

Modified:
    trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/ad/TransientIdAttributeDefinitionTest.java
    trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDTransientCanonicalization.java

Modified: trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/ad/TransientIdAttributeDefinitionTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/ad/TransientIdAttributeDefinitionTest.java?rev=5252&r1=5251&r2=5252&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/ad/TransientIdAttributeDefinitionTest.java (original)
+++ trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/ad/TransientIdAttributeDefinitionTest.java Tue Jan 28 05:19:47 2014
@@ -186,7 +186,7 @@
         store.destroy();
     }
     
-    @Test public void decode2() throws ComponentInitializationException, ResolutionException, AttributeEncodingException, ProfileException {
+    @Test public void decode() throws ComponentInitializationException, ResolutionException, AttributeEncodingException, ProfileException {
         
         final TransientIdAttributeDefinition defn = new TransientIdAttributeDefinition();
         defn.setId(TEST_ATTRIBUTE_NAME);

Modified: trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDTransientCanonicalization.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDTransientCanonicalization.java?rev=5252&r1=5251&r2=5252&view=diff
==============================================================================
--- trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDTransientCanonicalization.java (original)
+++ trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDTransientCanonicalization.java Tue Jan 28 05:19:47 2014
@@ -31,73 +31,130 @@
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.saml.saml2.core.NameID;
 
+import com.google.common.base.Predicate;
+
 /**
  * An action that operates on a {@link SubjectCanonicalizationContext} child of the current
- * {@link ProfileRequestContext}, and transforms the input {@link javax.security.auth.Subject}
- * into a principal name by searching for one and only one {@link NameIDPrincipal} custom principal.
+ * {@link ProfileRequestContext}, and transforms the input {@link javax.security.auth.Subject} into a principal name by
+ * searching for one and only one {@link NameIDPrincipal} custom principal.
  * 
  * @event {@link org.opensaml.profile.action.EventIds#PROCEED_EVENT_ID}
- * @event {@link org.opensaml.profile.action.EventIds#INVALID_PROFILE_CTX}
- * @event {@link AuthnEventIds#SUBJECT_C14N_ERROR}
- * @event {@link AuthnEventIds#RESELECT_FLOW}
- * @pre <pre>ProfileRequestContext.getSubcontext(SubjectCanonicalizationContext.class, false) != null</pre>
- * @post <pre>SubjectCanonicalizationContext.getPrincipalName() != null
- *  || SubjectCanonicalizationContext.getException() != null</pre>
+ * @event {@link AuthnEventIds#INVALID_SUBJECT}
+ * @pre <pre>
+ * ProfileRequestContext.getSubcontext(SubjectCanonicalizationContext.class, false) != null
+ * </pre>
+ * @post <pre>
+ * SubjectCanonicalizationContext.getPrincipalName() != null || SubjectCanonicalizationContext.getException() != null
+ * </pre>
  */
 public class NameIDTransientCanonicalization extends AbstractTransientCanonicalization {
-    
+
     /** The custom Principal to operate on. */
     @Nullable private String transientPrincipal;
-    
-    
-    
+
+    /** Supplies logic for pre-execute test. */
+    @Nonnull private final ActivationCondition embeddedPredicate;
+
+    /**
+     * Constructor.
+     */
+    public NameIDTransientCanonicalization() {
+        embeddedPredicate = new ActivationCondition();
+    }
+
     /** {@inheritDoc} */
-    @Override
-    protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext, 
+    @Override protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext,
             @Nonnull final SubjectCanonicalizationContext c14nContext) throws SubjectCanonicalizationException {
-        
-        final Set<NameIDPrincipal> nameIDs;
-        if (c14nContext.getSubject() != null) {
-            nameIDs = c14nContext.getSubject().getPrincipals(NameIDPrincipal.class);
+
+        if (embeddedPredicate.apply(profileRequestContext, c14nContext, true)) {
+

[... 125 lines stripped ...]


More information about the commits mailing list