[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