[java-opensaml] branch master updated: IDP-1604 Better status values from ChainingMetadataResolver
Rod Widdowson
rdw at steadingsoftware.com
Sun May 24 10:51:50 UTC 2020
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch master
in repository java-opensaml.
View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=338df578ece0ae320b4ffb07b66b649f1883b612
The following commit(s) were added to refs/heads/master by this push:
new 338df578e IDP-1604 Better status values from ChainingMetadataResolver
338df578e is described below
commit 338df578ece0ae320b4ffb07b66b649f1883b612
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun May 24 11:47:30 2020 +0100
IDP-1604 Better status values from ChainingMetadataResolver
https://issues.shibboleth.net/jira/browse/IDP-1604
Modify last checking to return a more coherent story about
the state of the child resolvers.
A failure of any child is reflected in the response on all
Instant responses (update, refresh, successfulRefresh).
This mirrors the other responses (wasLastRefreshSuccess,
lastFailureCause) where the "worst case" is returned.
---
.../resolver/ChainingMetadataResolver.java | 37 +++++++++++++++-------
1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
index 833861712..89e970449 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
@@ -173,30 +173,38 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
}
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
+ * We iterate over all the children and return the earliest instant or null if one of them hasn't ever updated. */
@Override
@Nullable public Instant getLastUpdate() {
Instant ret = null;
for (final MetadataResolver resolver : resolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
final Instant lastUpdate = ((RefreshableMetadataResolver) resolver).getLastUpdate();
- if (ret == null || lastUpdate == null || ret.isBefore(lastUpdate)) {
+ if (lastUpdate == null) {
+ return null;
+ }
+ if (ret == null || ret.isBefore(lastUpdate)) {
ret = lastUpdate;
}
}
}
-
+
return ret;
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
+ * We iterate over all the children and return the earliest instant or null if one of them hasn't ever refreshed. */
@Override
@Nullable public Instant getLastRefresh() {
Instant ret = null;
for (final MetadataResolver resolver : resolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
final Instant lastRefresh = ((RefreshableMetadataResolver) resolver).getLastRefresh();
- if (ret == null || lastRefresh == null || ret.isBefore(lastRefresh)) {
+ if (lastRefresh == null) {
+ return null;
+ }
+ if (ret == null || ret.isBefore(lastRefresh)) {
ret = lastRefresh;
}
}
@@ -205,22 +213,28 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
return ret;
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
+ * We iterate over all the children and return the earliest instant or null if one of them
+ * hasn't ever refreshed successfully. */
public Instant getLastSuccessfulRefresh() {
Instant ret = null;
for (final MetadataResolver resolver : resolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
final Instant lastSuccessRefresh = ((RefreshableMetadataResolver) resolver).getLastSuccessfulRefresh();
- if (ret == null || lastSuccessRefresh == null || ret.isBefore(lastSuccessRefresh)) {
+ if (lastSuccessRefresh == null) {
+ return null;
+ }
+ if (ret == null || ret.isBefore(lastSuccessRefresh)) {
ret = lastSuccessRefresh;
}
}
}
-
+
return ret;
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
+ * We iterate over all children - a failure of any is a failure. */
public Boolean wasLastRefreshSuccess() {
for (final MetadataResolver resolver : resolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
@@ -230,11 +244,12 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
}
}
}
-
+
return true;
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
+ * We iterate over all children and return the first failure we find. */
public Throwable getLastFailureCause() {
for (final MetadataResolver resolver : resolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list