Fix NPE when no attributes available to be encoded into a name identifier
authorlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Sun, 20 Jun 2010 17:37:44 +0000 (17:37 +0000)
committerlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Sun, 20 Jun 2010 17:37:44 +0000 (17:37 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/branches/REL_2@2932 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/main/java/edu/internet2/middleware/shibboleth/idp/profile/saml1/AbstractSAML1ProfileHandler.java
src/main/java/edu/internet2/middleware/shibboleth/idp/profile/saml2/AbstractSAML2ProfileHandler.java

index 38fb531..986acb5 100644 (file)
@@ -331,11 +331,10 @@ public abstract class AbstractSAML1ProfileHandler extends AbstractSAMLProfileHan
         SubjectConfirmation subjectConfirmation = subjectConfirmationBuilder.buildObject();
         subjectConfirmation.getConfirmationMethods().add(method);
 
-        NameIdentifier nameID = buildNameId(requestContext);
-
         Subject subject = subjectBuilder.buildObject();
         subject.setSubjectConfirmation(subjectConfirmation);
 
+        NameIdentifier nameID = buildNameId(requestContext);
         if (nameID != null) {
             subject.setNameIdentifier(nameID);
             requestContext.setSubjectNameIdentifier(nameID);
@@ -372,6 +371,11 @@ public abstract class AbstractSAML1ProfileHandler extends AbstractSAMLProfileHan
                     "Required NameIdentifier format not supported"));
             throw e;
         }
+        
+        if(nameIdAttributeAndEncoder == null){
+            log.debug("No attribute supports encoding as a SAML 1 name identifier");
+            return null;
+        }
 
         BaseAttribute<?> nameIdAttribute = nameIdAttributeAndEncoder.getFirst();
         SAML1NameIdentifierEncoder nameIdEncoder = nameIdAttributeAndEncoder.getSecond();
index f024be8..0cbd1e4 100644 (file)
@@ -833,6 +833,11 @@ public abstract class AbstractSAML2ProfileHandler extends AbstractSAMLProfileHan
                     "Required NameID format not supported"));
             throw e;
         }
+        
+        if(nameIdAttributeAndEncoder == null){
+            log.debug("No attribute supports encoding as a SAML 2 name identifier");
+            return null;
+        }
 
         BaseAttribute<?> nameIdAttribute = nameIdAttributeAndEncoder.getFirst();
         SAML2NameIDEncoder nameIdEncoder = nameIdAttributeAndEncoder.getSecond();