[java-identity-provider COMMIT] /trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/LegacyCanonica...

noreply at shibboleth.net noreply at shibboleth.net
Tue Feb 11 08:25:24 EST 2014


Author: rdw
Date: Tue Feb 11 08:25:24 2014
New Revision: 5369

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5369&view=rev
Log:
IDP-268 Add "the usual" interrogation of the Context into the activationCondition Predicate.

Modified:
    trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/LegacyCanonicalization.java

Modified: trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/LegacyCanonicalization.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/LegacyCanonicalization.java?rev=5369&r1=5368&r2=5369&view=diff
==============================================================================
--- trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/LegacyCanonicalization.java (original)
+++ trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/LegacyCanonicalization.java Tue Feb 11 08:25:24 2014
@@ -17,8 +17,11 @@
 
 package net.shibboleth.idp.saml.impl.nameid;
 
+import java.util.Set;
+
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import javax.security.auth.Subject;
 
 import net.shibboleth.idp.attribute.resolver.AttributeResolver;
 import net.shibboleth.idp.attribute.resolver.LegacyPrincipalDecoder;
@@ -27,6 +30,8 @@
 import net.shibboleth.idp.authn.AuthnEventIds;
 import net.shibboleth.idp.authn.SubjectCanonicalizationException;
 import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
+import net.shibboleth.idp.saml.authn.principal.NameIDPrincipal;
+import net.shibboleth.idp.saml.authn.principal.NameIdentifierPrincipal;
 import net.shibboleth.idp.service.ReloadableService;
 import net.shibboleth.idp.service.ServiceableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
@@ -147,6 +152,26 @@
          */
         @Override public boolean apply(@Nullable final ProfileRequestContext input) {
 
+            if (null == input) {
+                return false;
+            }
+            final SubjectCanonicalizationContext c14nContext =
+                    input.getSubcontext(SubjectCanonicalizationContext.class, false);
+            
+            if (null == c14nContext) {
+                return false;
+            }
+
+            final Subject subject = c14nContext.getSubject();
+            if (null == subject) {
+                return false;
+            }
+            final Set<NameIDPrincipal> nameIDs = subject.getPrincipals(NameIDPrincipal.class);
+            final Set<NameIdentifierPrincipal> nameIdentifiers = subject.getPrincipals(NameIdentifierPrincipal.class);
+            if (1 != nameIDs.size() + nameIdentifiers.size()) {
+                return false;
+            }
+            
             if (null == attributeResolverService) {
                 return false;
             }



More information about the commits mailing list