[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