296 log.trace(
"Starting trust parameters map initialization.");
298 HashMap<String, Object> trustParams =
new HashMap<String, Object>();
302 List<Map<String, String>> trustEngines =
new ArrayList<Map<String, String>>();
305 Map<String, String> trustIds =
new HashMap<String, String>();
308 List<GluuSAMLTrustRelationship> deconstructed =
new ArrayList<GluuSAMLTrustRelationship>();
312 Map<String, String> deconstructedIds =
new HashMap<String, String>();
316 Map<String, List<String>> deconstructedMap =
new HashMap<String, List<String>>();
319 Map<String, List<String>> trustEntityIds =
new HashMap<String, List<String>>();
322 for (GluuSAMLTrustRelationship trustRelationship : trustRelationships) {
324 boolean isPartOfFederation = !(trustRelationship.getSpMetaDataSourceType().equals(GluuMetadataSourceType.URI) || trustRelationship.getSpMetaDataSourceType().equals(GluuMetadataSourceType.FILE));
326 if (!isPartOfFederation) {
329 trustIds.put(trustRelationship.getInum(), String.valueOf(
id++));
334 File metadataFile =
new File(idpMetadataFolder + trustRelationship.getSpMetaDataFN());
335 List<String> entityIds = SAMLMetadataParser.getEntityIdFromMetadataFile(metadataFile);
339 if (entityIds == null) {
340 trustRelationship.setStatus(GluuStatus.INACTIVE);
345 trustEntityIds.put(trustRelationship.getInum(), entityIds);
352 }
catch (Exception e) {
353 log.error(
"Failed to parse stored metadataFilter configuration for trustRelationship " + trustRelationship.getDn(), e);
357 if (trustRelationship.getMetadataFilters().get(
"signatureValidation") != null) {
359 Map<String, String> trustEngine =
new HashMap<String, String>();
361 trustEngine.put(
"id",
"Trust" + StringHelper.removePunctuation(trustRelationship.getInum()));
364 + trustRelationship.getMetadataFilters().get(
"signatureValidation").getFilterCertFileName());
366 trustEngines.add(trustEngine);
370 if (trustRelationship.getGluuSAMLMetaDataFilter() != null) {
372 List<String> filtersList =
new ArrayList<String>();
373 String entityRoleWhiteList = null;
374 for (String filterXML : trustRelationship.getGluuSAMLMetaDataFilter()) {
376 Document xmlDocument;
380 xmlDocument =
xmlService.getXmlDocument(filterXML.getBytes());
382 }
catch (Exception e) {
383 log.error(
"GluuSAMLMetaDataFilter contains invalid value.", e);
388 if (xmlDocument.getFirstChild().getAttributes().getNamedItem(
"xsi:type").getNodeValue().equals(FilterService.ENTITY_ROLE_WHITE_LIST_TYPE)) {
389 entityRoleWhiteList = filterXML;
393 filtersList.add(filterXML);
396 if (entityRoleWhiteList != null) {
397 filtersList.add(entityRoleWhiteList);
400 trustRelationship.setGluuSAMLMetaDataFilter(filtersList);
407 if (deconstructedMap.get(federationInum) == null) {
408 deconstructedMap.put(federationInum,
new ArrayList<String>());
411 deconstructedMap.get(federationInum).add(trustRelationship.getEntityId());
412 deconstructed.add(trustRelationship);
413 deconstructedIds.put(trustRelationship.getEntityId(), String.valueOf(
id++));
417 for (String trustRelationshipInum : trustEntityIds.keySet()) {
418 List<String> federatedSites = deconstructedMap.get(trustRelationshipInum);
419 if (federatedSites != null) {
420 trustEntityIds.get(trustRelationshipInum).removeAll(federatedSites);
424 trustParams.put(
"idpCredentialsPath",
getIdpMetadataDir() +
"credentials" + File.separator);
426 trustParams.put(
"deconstructed", deconstructed);
427 trustParams.put(
"deconstructedIds", deconstructedIds);
429 trustParams.put(
"trustEngines", trustEngines);
430 trustParams.put(
"trusts", trustRelationships);
431 trustParams.put(
"trustIds", trustIds);
432 trustParams.put(
"trustEntityIds", trustEntityIds);
String getInum()
Definition: GluuSAMLTrustRelationship.java:300
XmlService xmlService
Definition: Shibboleth3ConfService.java:157
TrustService trustService
Definition: Shibboleth3ConfService.java:172
String getIdpMetadataDir()
Definition: Shibboleth3ConfService.java:680
GluuSAMLTrustRelationship getTrustContainerFederation(GluuSAMLTrustRelationship trustRelationship)
Definition: TrustService.java:425
void updateTrustRelationship(GluuSAMLTrustRelationship trustRelationship)
Definition: TrustService.java:111
FilterService filterService
Definition: Shibboleth3ConfService.java:142
void parseFilters(GluuSAMLTrustRelationship trustRelationship)
Definition: FilterService.java:199
ProfileConfigurationService profileConfigurationService
Definition: Shibboleth3ConfService.java:160
Logger log
Definition: Shibboleth3ConfService.java:139
void parseProfileConfigurations(GluuSAMLTrustRelationship trustRelationship)
Definition: ProfileConfigurationService.java:162