99 log.trace(
"Starting entityId monitoring process.");
100 log.trace(
"EVENT_METADATA_ENTITY_ID_UPDATE Starting");
102 log.trace(
"Evaluating TR " + tr.getDn());
103 boolean meatadataAvailable = tr.getSpMetaDataFN() != null && StringHelper.isNotEmpty(tr.getSpMetaDataFN());
104 log.trace(
"meatadataAvailable:" + meatadataAvailable);
106 log.trace(
"correctType:" + correctType);
107 boolean isValidated = GluuValidationStatus.VALIDATION_SUCCESS.equals(tr.getValidationStatus());
108 log.trace(
"isValidated:" + isValidated);
109 if (meatadataAvailable && correctType && isValidated) {
110 String idpMetadataFolder =
appConfiguration.getShibboleth3IdpRootDir() + File.separator
111 + Shibboleth3ConfService.SHIB3_IDP_METADATA_FOLDER + File.separator;
112 File metadataFile =
new File(idpMetadataFolder + tr.getSpMetaDataFN());
113 List<String> entityIds = SAMLMetadataParser.getEntityIdFromMetadataFile(metadataFile);
116 Set<String> entityIdSet =
new TreeSet<String>();
118 if (entityIds != null && !entityIds.isEmpty()) {
119 Set<String> duplicatesSet =
new TreeSet<String>();
120 for (String entityId : entityIds) {
121 if (!entityIdSet.add(entityId)) {
122 duplicatesSet.add(entityId);
128 Collection<String> disjunction = CollectionUtils.disjunction(entityIdSet, tr.getGluuEntityId());
131 if (!disjunction.isEmpty()) {
132 log.trace(
"entityIds disjunction is not empty. Somthing has changed. Processing further.");
133 tr.setGluuEntityId(entityIdSet);
134 if (tr.isFederation()) {
136 for (GluuSAMLTrustRelationship part : parts) {
137 log.trace(
"Processing TR part: " + part.getDn());
138 boolean isActive = part.getStatus() != null && GluuStatus.ACTIVE.equals(part.getStatus());
139 log.trace(
"isActive:" + isActive);
140 boolean entityIdPresent = entityIdSet != null && entityIdSet.contains(part.getEntityId());
141 log.trace(
"entityIdPresent:" + entityIdPresent);
142 boolean previouslyDisabled = part.getValidationLog() != null && part.getValidationLog()
144 log.trace(
"previouslyDisabled:" + previouslyDisabled);
145 if (isActive && !entityIdPresent) {
146 log.trace(
"no entityId found for part : " + part.getDn());
147 part.setStatus(GluuStatus.INACTIVE);
148 List<String>
log =
new ArrayList<String>();
150 part.setValidationLog(log);
153 if (entityIdPresent && previouslyDisabled) {
154 log.trace(
"entityId found for part : " + part.getDn());
155 part.setStatus(GluuStatus.ACTIVE);
156 List<String> log = part.getValidationLog();
157 List<String> updatedLog =
new ArrayList<String>(
log);
159 if (updatedLog.isEmpty()) {
162 part.setValidationLog(updatedLog);
AtomicBoolean isActive
Definition: EntityIDMonitoringService.java:65
ServiceUtil serviceUtil
Definition: EntityIDMonitoringService.java:60
String iterableToString(Iterable<?> list)
Definition: ServiceUtil.java:107
List< GluuSAMLTrustRelationship > getAllTrustRelationships()
Definition: TrustService.java:198
static final String ENTITY_ID_VANISHED_MESSAGE
Definition: EntityIDMonitoringService.java:46
Logger log
Definition: EntityIDMonitoringService.java:51
GluuSAMLTrustRelationship getTrustContainerFederation(GluuSAMLTrustRelationship trustRelationship)
Definition: TrustService.java:425
void updateTrustRelationship(GluuSAMLTrustRelationship trustRelationship)
Definition: TrustService.java:111
AppConfiguration appConfiguration
Definition: EntityIDMonitoringService.java:57
TrustService trustService
Definition: EntityIDMonitoringService.java:63
List< GluuSAMLTrustRelationship > getDeconstructedTrustRelationships(GluuSAMLTrustRelationship trustRelationship)
Definition: TrustService.java:406