From fc15ed904e615e7768c4081940482c5377a6d6a3 Mon Sep 17 00:00:00 2001
From: Thomas Lenz <tlenz@iaik.tugraz.at>
Date: Fri, 7 Mar 2014 10:56:53 +0100
Subject: use first NameIDFormat from metadata

---
 .../pvp2x/builder/assertion/PVP2AssertionBuilder.java      | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

(limited to 'id/server/idserverlib')

diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java
index 1454ee297..7f5e2420e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java
@@ -53,6 +53,8 @@ import org.opensaml.saml2.metadata.RequestedAttribute;
 import org.opensaml.saml2.metadata.SPSSODescriptor;
 import org.w3c.dom.Element;
 
+import edu.emory.mathcs.backport.java.util.Arrays;
+
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;
 import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;
@@ -313,9 +315,17 @@ public class PVP2AssertionBuilder implements PVPConstants {
 			List<NameIDFormat> metadataNameIDFormats = spSSODescriptor.getNameIDFormats();
 			
 			if (metadataNameIDFormats != null) {
-				if (metadataNameIDFormats.size() == 1)
-					nameIDFormat = metadataNameIDFormats.get(0).getFormat();
 				
+				for (NameIDFormat el : metadataNameIDFormats) {
+					if (NameID.PERSISTENT.equals(el.getFormat())) {
+						nameIDFormat = NameID.PERSISTENT;
+						break;
+						
+					} else if (NameID.TRANSIENT.equals(el.getFormat()) ||
+							NameID.UNSPECIFIED.equals(el.getFormat()))
+						break;
+										
+				}				
 			}
 		}
 	
-- 
cgit v1.2.3