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

noreply at shibboleth.net noreply at shibboleth.net
Wed Feb 12 08:56:12 EST 2014


Author: rdw
Date: Wed Feb 12 08:56:12 2014
New Revision: 5379

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5379&view=rev
Log:
IDP-359  Move stuff between preExecute and execute so that execute does the decode and poreexecute does the preconditions.

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

Modified: trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDCanonicalization.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDCanonicalization.java?rev=5379&r1=5378&r2=5379&view=diff
==============================================================================
--- trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDCanonicalization.java (original)
+++ trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/impl/nameid/NameIDCanonicalization.java Wed Feb 12 08:56:12 2014
@@ -63,9 +63,6 @@
  */
 public class NameIDCanonicalization extends AbstractSubjectCanonicalizationAction implements InitializingBean {
 
-    /** The custom Principal to operate on. */
-    @Nullable private String decodedPrincipal;
-
     /** Supplies logic for pre-execute test. */
     @Nonnull private final ActivationCondition embeddedPredicate;
 
@@ -111,33 +108,29 @@
     @Override protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext,
             @Nonnull final SubjectCanonicalizationContext c14nContext) throws SubjectCanonicalizationException {
 
-        if (embeddedPredicate.apply(profileRequestContext, c14nContext, true)) {
-
-            final Set<NameIDPrincipal> nameIDs = c14nContext.getSubject().getPrincipals(NameIDPrincipal.class);
-            final NameID nameID = nameIDs.iterator().next().getNameID();
-
-            try {
-                decodedPrincipal = decoder.decode(nameID, c14nContext.getResponderId(), c14nContext.getRequesterId());
-            } catch (SubjectCanonicalizationException e) {
-                c14nContext.setException(e);
-                ActionSupport.buildEvent(profileRequestContext, AuthnEventIds.INVALID_SUBJECT);
-                return false;
-            } catch (NameDecoderException e) {
-                c14nContext.setException(e);
-                ActionSupport.buildEvent(profileRequestContext, AuthnEventIds.SUBJECT_C14N_ERROR);
-                return false;
-            }
-            return super.doPreExecute(profileRequestContext, c14nContext);
-        } else {
+        if (!embeddedPredicate.apply(profileRequestContext, c14nContext, true)) {
             return false;
         }
+        return super.doPreExecute(profileRequestContext, c14nContext);
     }
 
     /** {@inheritDoc} */
     @Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext,
             @Nonnull final SubjectCanonicalizationContext c14nContext) throws SubjectCanonicalizationException {
 
-        c14nContext.setPrincipalName(decodedPrincipal);
+        final Set<NameIDPrincipal> nameIDs = c14nContext.getSubject().getPrincipals(NameIDPrincipal.class);
+        final NameID nameID = nameIDs.iterator().next().getNameID();
+
+        try {
+            c14nContext.setPrincipalName(decoder.decode(nameID, c14nContext.getResponderId(),
+                    c14nContext.getRequesterId()));
+        } catch (SubjectCanonicalizationException e) {
+            c14nContext.setException(e);
+            ActionSupport.buildEvent(profileRequestContext, AuthnEventIds.INVALID_SUBJECT);
+        } catch (NameDecoderException e) {
+            c14nContext.setException(e);
+            ActionSupport.buildEvent(profileRequestContext, AuthnEventIds.SUBJECT_C14N_ERROR);
+        }
     }
 
     /** {@inheritDoc} */
@@ -179,7 +172,7 @@
             final SubjectCanonicalizationFlowDescriptor flowDescriptor = c14nContext.getAttemptedFlow();
 
             log.debug("Attempting to match format {}", format);
-            
+
             if (null == flowDescriptor) {
                 log.error("Supplied Context has no active FlowDescriptor");
                 return false;



More information about the commits mailing list