/** * Read the list of supported IDPs that the SP sent and determine if the chosen IdP is supported. * Request = opensaml ECP request header. * * @param header * @return */ public URL determineIdP(Header header, IDPEntry idpEntry) { IDPList idpList = null; List<XMLObject> list = header.getUnknownXMLObjects(); for (XMLObject xmlObject : list) { if (xmlObject.getElementQName().equals(Request.DEFAULT_ELEMENT_NAME)) { idpList = ((Request) xmlObject).getIDPList(); } } // If the list from the SP contains the same entry that // was chosen by the client... if (idpList != null) { for (IDPEntry spIdpEntry : idpList.getIDPEntrys()) { if (spIdpEntry.getName() != null && spIdpEntry.getLoc() != null && idpEntry.getProviderID() != null) if (spIdpEntry.getName().equals(idpEntry.getName())) if (spIdpEntry.getLoc().equals(idpEntry.getLoc())) if (spIdpEntry.getProviderID().equals(idpEntry.getProviderID())) return getURL(spIdpEntry.getLoc()); } } return null; }