Don't create empty attribute statements when no attributes are released. Fixed bug...
authorlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Wed, 7 Nov 2007 07:32:37 +0000 (07:32 +0000)
committerlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Wed, 7 Nov 2007 07:32:37 +0000 (07:32 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@2453 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/edu/internet2/middleware/shibboleth/idp/profile/saml1/AbstractSAML1ProfileHandler.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml1/AttributeQueryProfileHandler.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml1/ShibbolethSSOProfileHandler.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml2/AbstractSAML2ProfileHandler.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml2/AttributeQueryProfileHandler.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml2/SSOProfileHandler.java

index e034eb5..ae3e061 100644 (file)
@@ -186,7 +186,7 @@ public abstract class AbstractSAML1ProfileHandler extends AbstractSAMLProfileHan
 
         // create the assertion and add the attribute statement
         Assertion assertion = buildAssertion(requestContext, issueInstant);
-        if (statements != null) {
+        if (statements != null && !statements.isEmpty()) {
             assertion.getStatements().addAll(statements);
         }
 
index ee98375..bdefac4 100644 (file)
@@ -88,8 +88,10 @@ public class AttributeQueryProfileHandler extends AbstractSAML1ProfileHandler {
                 requestContext.setReleasedAttributes(requestContext.getPrincipalAttributes().keySet());
 
                 ArrayList<Statement> statements = new ArrayList<Statement>();
-                statements
-                        .add(buildAttributeStatement(requestContext, "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches"));
+                if (!requestContext.getPrincipalAttributes().isEmpty()) {
+                    statements.add(buildAttributeStatement(requestContext,
+                            "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches"));
+                }
 
                 samlResponse = buildResponse(requestContext, statements);
             }
index 6206b79..1cc2440 100644 (file)
@@ -243,7 +243,8 @@ public class ShibbolethSSOProfileHandler extends AbstractSAML1ProfileHandler {
 
             ArrayList<Statement> statements = new ArrayList<Statement>();
             statements.add(buildAuthenticationStatement(requestContext));
-            if (requestContext.getProfileConfiguration().includeAttributeStatement()) {
+            if (requestContext.getProfileConfiguration().includeAttributeStatement()
+                    && !requestContext.getPrincipalAttributes().isEmpty()) {
                 requestContext.setRequestedAttributes(requestContext.getPrincipalAttributes().keySet());
                 statements.add(buildAttributeStatement(requestContext, "urn:oasis:names:tc:SAML:1.0:cm:bearer"));
             }
index a96cf64..5df6832 100644 (file)
@@ -196,7 +196,7 @@ public abstract class AbstractSAML2ProfileHandler extends AbstractSAMLProfileHan
         // create the assertion and add the attribute statement
         Assertion assertion = buildAssertion(requestContext, issueInstant);
         assertion.setSubject(subject);
-        if (statements != null) {
+        if (statements != null && !statements.isEmpty()) {
             assertion.getStatements().addAll(statements);
         }
 
index 85c6417..c1a7cbf 100644 (file)
@@ -92,7 +92,9 @@ public class AttributeQueryProfileHandler extends AbstractSAML2ProfileHandler {
 
             // Lookup principal name and attributes, create attribute statement from information
             ArrayList<Statement> statements = new ArrayList<Statement>();
-            statements.add(buildAttributeStatement(requestContext));
+            if(!requestContext.getPrincipalAttributes().isEmpty()){
+                statements.add(buildAttributeStatement(requestContext));
+            }
 
             // create the SAML response
             samlResponse = buildResponse(requestContext, "urn:oasis:names:tc:SAML:2.0:cm:sender-vouches", statements);
index 4dca8d1..083df26 100644 (file)
@@ -217,7 +217,8 @@ public class SSOProfileHandler extends AbstractSAML2ProfileHandler {
 
             ArrayList<Statement> statements = new ArrayList<Statement>();
             statements.add(buildAuthnStatement(requestContext));
-            if (requestContext.getProfileConfiguration().includeAttributeStatement()) {
+            if (requestContext.getProfileConfiguration().includeAttributeStatement()
+                    && !requestContext.getPrincipalAttributes().isEmpty()) {
                 requestContext.setRequestedAttributes(requestContext.getPrincipalAttributes().keySet());
                 statements.add(buildAttributeStatement(requestContext));
             }