summaryrefslogtreecommitdiff
path: root/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata
diff options
context:
space:
mode:
authorThomas <>2022-01-08 19:50:42 +0100
committerThomas <>2022-01-08 19:50:42 +0100
commit5bdcf4b0298da05efb06eb84acdb188e4313df75 (patch)
treea1c40aef7914f58950d3ecc06e0811131430ddd3 /eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata
parentd7f9aa156ad76e5ddaf797a16f1155c37594bd91 (diff)
parentf59462296cf6eb0401be025a64b1be9ec8afc541 (diff)
downloadEAAF-Components-5bdcf4b0298da05efb06eb84acdb188e4313df75.tar.gz
EAAF-Components-5bdcf4b0298da05efb06eb84acdb188e4313df75.tar.bz2
EAAF-Components-5bdcf4b0298da05efb06eb84acdb188e4313df75.zip
Merge branch 'opensaml_4.x' into nightlyBuild
# Conflicts: # eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java # eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/SamlVerificationEngine.java # eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/binding/SoapBindingTest.java # eaaf_modules/eaaf_module_pvp2_core/src/test/java/at/gv/egiz/eaaf/modules/pvp2/test/dummy/DummyMetadataProvider.java # eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AbstractPvp2XProtocol.java # eaaf_modules/eaaf_module_pvp2_sp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/sp/impl/PvpAuthnRequestBuilder.java # pom.xml
Diffstat (limited to 'eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata')
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java41
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java20
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverFactory.java13
3 files changed, 47 insertions, 27 deletions
diff --git a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java
index 28f5d618..32e82ce4 100644
--- a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java
+++ b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/AbstractChainingMetadataProvider.java
@@ -21,6 +21,7 @@ package at.gv.egiz.eaaf.modules.pvp2.impl.metadata;
import java.io.IOException;
import java.security.cert.CertificateException;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -34,7 +35,6 @@ import javax.annotation.Nullable;
import javax.naming.ConfigurationException;
import org.apache.commons.lang3.StringUtils;
-import org.joda.time.DateTime;
import org.opensaml.core.criterion.EntityIdCriterion;
import org.opensaml.saml.metadata.resolver.ClearableMetadataResolver;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
@@ -63,7 +63,7 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
@Nonnull
@NonnullElements
private final List<MetadataResolver> internalResolvers;
- private DateTime lastRefeshTimestamp;
+ private Instant lastRefeshTimestamp;
private boolean lastRefeshSuccessful;
private static Object mutex = new Object();
@@ -110,10 +110,10 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
@Override
public synchronized boolean refreshMetadataProvider(final String entityId) {
try {
- //if (resolveEntityDescriporForRefesh(entityId)) {
- // return true;
+ // if (resolveEntityDescriporForRefesh(entityId)) {
+ // return true;
//
- //}
+ // }
// reload metadata provider
final String metadataUrl = getMetadataUrl(entityId);
@@ -159,7 +159,6 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
}
-
@Override
public final MetadataFilter getMetadataFilter() {
log.warn("{} does NOT support {}", AbstractChainingMetadataProvider.class.getName(),
@@ -274,17 +273,17 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
}
}
- this.lastRefeshTimestamp = DateTime.now();
+ this.lastRefeshTimestamp = Instant.now();
this.lastRefeshSuccessful = true;
}
@Override
@Nullable
- public final DateTime getLastUpdate() {
- DateTime ret = null;
+ public final Instant getLastUpdate() {
+ Instant ret = null;
for (final MetadataResolver resolver : internalResolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
- final DateTime lastUpdate = ((RefreshableMetadataResolver) resolver).getLastUpdate();
+ final Instant lastUpdate = ((RefreshableMetadataResolver) resolver).getLastUpdate();
if (ret == null || ret.isBefore(lastUpdate)) {
ret = lastUpdate;
}
@@ -296,11 +295,11 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
@Override
@Nullable
- public final DateTime getLastRefresh() {
- DateTime ret = null;
+ public final Instant getLastRefresh() {
+ Instant ret = null;
for (final MetadataResolver resolver : internalResolvers) {
if (resolver instanceof RefreshableMetadataResolver) {
- final DateTime lastRefresh = ((RefreshableMetadataResolver) resolver).getLastRefresh();
+ final Instant lastRefresh = ((RefreshableMetadataResolver) resolver).getLastRefresh();
if (ret == null || ret.isBefore(lastRefresh)) {
ret = lastRefresh;
}
@@ -311,7 +310,7 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
}
@Override
- public final DateTime getLastSuccessfulRefresh() {
+ public final Instant getLastSuccessfulRefresh() {
return this.lastRefeshTimestamp;
}
@@ -346,6 +345,20 @@ public abstract class AbstractChainingMetadataProvider implements IGarbageCollec
}
+ @Override
+ public final Throwable getLastFailureCause() {
+ for (final MetadataResolver resolver : internalResolvers) {
+ if (resolver instanceof RefreshableMetadataResolver) {
+ final RefreshableMetadataResolver refreshable = (RefreshableMetadataResolver) resolver;
+ if (refreshable.getLastFailureCause() != null) {
+ return refreshable.getLastFailureCause();
+ }
+ }
+ }
+
+ return null;
+ }
+
/**
* Get the URL to metadata for a specific entityID.
*
diff --git a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java
index 4115cc7c..f0291847 100644
--- a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java
+++ b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java
@@ -1,8 +1,10 @@
package at.gv.egiz.eaaf.modules.pvp2.impl.metadata;
-import org.joda.time.DateTime;
+
+import java.time.Instant;
+
import org.opensaml.core.criterion.EntityIdCriterion;
-import org.opensaml.saml.metadata.resolver.ExtendedRefreshableMetadataResolver;
+import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver;
import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
import org.opensaml.saml.metadata.resolver.impl.AbstractMetadataResolver;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
@@ -16,9 +18,9 @@ import net.shibboleth.utilities.java.support.resolver.ResolverException;
@Slf4j
public class PvpMetadataResolverAdapter implements IPvp2MetadataProvider, IRefreshableMetadataProvider {
- private final ExtendedRefreshableMetadataResolver internalProvider;
+ private final RefreshableMetadataResolver internalProvider;
- public PvpMetadataResolverAdapter(ExtendedRefreshableMetadataResolver provider) {
+ public PvpMetadataResolverAdapter(RefreshableMetadataResolver provider) {
this.internalProvider = provider;
}
@@ -29,13 +31,13 @@ public class PvpMetadataResolverAdapter implements IPvp2MetadataProvider, IRefre
}
@Override
- public DateTime getLastRefresh() {
+ public Instant getLastRefresh() {
return internalProvider.getLastRefresh();
}
@Override
- public DateTime getLastUpdate() {
+ public Instant getLastUpdate() {
return internalProvider.getLastUpdate();
}
@@ -88,7 +90,7 @@ public class PvpMetadataResolverAdapter implements IPvp2MetadataProvider, IRefre
}
@Override
- public DateTime getLastSuccessfulRefresh() {
+ public Instant getLastSuccessfulRefresh() {
return internalProvider.getLastSuccessfulRefresh();
}
@@ -122,7 +124,11 @@ public class PvpMetadataResolverAdapter implements IPvp2MetadataProvider, IRefre
internalProvider.getClass().getName());
}
+ }
+ public Throwable getLastFailureCause() {
+ return internalProvider.getLastFailureCause();
+
}
}
diff --git a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverFactory.java b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverFactory.java
index d29f1a0e..bf541b67 100644
--- a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverFactory.java
+++ b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverFactory.java
@@ -1,6 +1,7 @@
package at.gv.egiz.eaaf.modules.pvp2.impl.metadata;
import java.io.IOException;
+import java.time.Duration;
import java.util.Timer;
import javax.annotation.Nonnull;
@@ -10,7 +11,7 @@ import javax.net.ssl.SSLHandshakeException;
import org.apache.http.client.HttpClient;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
-import org.opensaml.saml.metadata.resolver.ExtendedRefreshableMetadataResolver;
+import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver;
import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
import org.opensaml.saml.metadata.resolver.impl.AbstractReloadingMetadataResolver;
import org.opensaml.saml.metadata.resolver.impl.HTTPMetadataResolver;
@@ -102,7 +103,7 @@ public class PvpMetadataResolverFactory implements IDestroyableObject {
@Nullable final MetadataFilter filter, @Nonnull final String idForLogging,
@Nullable final ParserPool pool, @Nullable final HttpClient httpClient) throws Pvp2MetadataException {
- ExtendedRefreshableMetadataResolver internalProvider = null;
+ RefreshableMetadataResolver internalProvider = null;
try {
if (metadataLocation.startsWith(URI_PREFIX_HTTP)
@@ -181,7 +182,7 @@ public class PvpMetadataResolverFactory implements IDestroyableObject {
* @throws ComponentInitializationException In case of a metadata resolver
* initialization error
*/
- private ExtendedRefreshableMetadataResolver createNewFileSystemMetaDataProvider(final Resource metadataFile,
+ private RefreshableMetadataResolver createNewFileSystemMetaDataProvider(final Resource metadataFile,
final MetadataFilter filter, final String idForLogging, final Timer timer,
final ParserPool pool) throws IOException, ComponentInitializationException {
ResourceBackedMetadataResolver fileSystemResolver = null;
@@ -212,7 +213,7 @@ public class PvpMetadataResolverFactory implements IDestroyableObject {
* @throws ResolverException In case of an internal OpenSAML
* resolver error
*/
- private ExtendedRefreshableMetadataResolver createNewHttpMetaDataProvider(final String metadataUrl,
+ private RefreshableMetadataResolver createNewHttpMetaDataProvider(final String metadataUrl,
final MetadataFilter filter, final String idForLogging, final Timer timer,
final ParserPool pool, final HttpClient httpClient) throws ComponentInitializationException,
ResolverException {
@@ -241,8 +242,8 @@ public class PvpMetadataResolverFactory implements IDestroyableObject {
}
resolver.setRequireValidMetadata(true);
- resolver.setMinRefreshDelay(1000 * 60 * 15); // 15 minutes
- resolver.setMaxRefreshDelay(1000 * 60 * 60 * 24); // 24 hours
+ resolver.setMinRefreshDelay(Duration.ofMinutes(15));
+ resolver.setMaxRefreshDelay(Duration.ofHours(24));
resolver.setMetadataFilter(filter);
}