[java-shib-common COMMIT] /branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/attribute/resolver...

noreply at shibboleth.net noreply at shibboleth.net
Thu Nov 15 17:57:10 EST 2012


Author: scantor
Date: Thu Nov 15 17:57:10 2012
New Revision: 1042

URL: http://svn.shibboleth.net/view/java-shib-common?rev=1042&view=rev
Log:
Check for null principals and return empty attributes instead of throwing.

Modified:
    branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/attribute/resolver/provider/attributeDefinition/CryptoTransientIdAttributeDefinition.java

Modified: branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/attribute/resolver/provider/attributeDefinition/CryptoTransientIdAttributeDefinition.java
URL: http://svn.shibboleth.net/view/java-shib-common/branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/attribute/resolver/provider/attributeDefinition/CryptoTransientIdAttributeDefinition.java?rev=1042&r1=1041&r2=1042&view=diff
==============================================================================
--- branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/attribute/resolver/provider/attributeDefinition/CryptoTransientIdAttributeDefinition.java (original)
+++ branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/attribute/resolver/provider/attributeDefinition/CryptoTransientIdAttributeDefinition.java Thu Nov 15 17:57:10 2012
@@ -17,6 +17,7 @@
 
 package edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.attributeDefinition;
 
+import org.opensaml.xml.util.DatatypeHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,21 +61,32 @@
     protected BaseAttribute<String> doResolve(ShibbolethResolutionContext resolutionContext)
             throws AttributeResolutionException {
 
-        SAMLProfileRequestContext<?, ?, ?, ?> requestContext = resolutionContext.getAttributeRequestContext();
+        BasicAttribute<String> attribute = new BasicAttribute<String>();
+        attribute.setId(getId());
+        
+        SAMLProfileRequestContext requestContext = resolutionContext.getAttributeRequestContext();
 
+        String principalName = requestContext.getPrincipalName();
+        if (principalName == null) {
+            log.debug("Principal name for request {} was null, no attribute value returned",
+                    requestContext.getInboundSAMLMessageId());
+            return attribute;
+        }
+
+        log.debug(
+                "Building crypto transient ID for request {}; outbound message issuer: {}, inbound message issuer: {}, principal identifer: {}",
+                new Object[] { requestContext.getInboundSAMLMessageId(), requestContext.getOutboundMessageIssuer(),
+                        requestContext.getInboundMessageIssuer(), principalName, });
+        
         StringBuilder principalTokenIdBuilder = new StringBuilder();
         principalTokenIdBuilder.append(requestContext.getOutboundMessageIssuer()).append("!").append(
-                requestContext.getInboundMessageIssuer()).append("!").append(requestContext.getPrincipalName());
-        String transientId;
+                requestContext.getInboundMessageIssuer()).append("!").append(principalName);
         try {
-            transientId = dataSealer.wrap(principalTokenIdBuilder.toString(), System.currentTimeMillis() + idLifetime);
+            String transientId = dataSealer.wrap(principalTokenIdBuilder.toString(), System.currentTimeMillis() + idLifetime);
+            attribute.getValues().add(transientId);
         } catch (DataSealerException e) {
-            throw new AttributeResolutionException("Caught exception wrapping principal identifier.", e);
+            log.error("Caught exception wrapping principal identifier.", e);
         }
-
-        BasicAttribute<String> attribute = new BasicAttribute<String>();
-        attribute.setId(getId());
-        attribute.getValues().add(transientId);
 
         return attribute;
     }



More information about the commits mailing list