summaryrefslogtreecommitdiff
path: root/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java')
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java115
1 files changed, 115 insertions, 0 deletions
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
new file mode 100644
index 00000000..d2b861dc
--- /dev/null
+++ b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/metadata/PvpMetadataResolverAdapter.java
@@ -0,0 +1,115 @@
+package at.gv.egiz.eaaf.modules.pvp2.impl.metadata;
+
+import at.gv.egiz.eaaf.modules.pvp2.api.metadata.IPvp2MetadataProvider;
+import at.gv.egiz.eaaf.modules.pvp2.api.metadata.IRefreshableMetadataProvider;
+
+import org.joda.time.DateTime;
+import org.opensaml.core.criterion.EntityIdCriterion;
+import org.opensaml.saml.metadata.resolver.ExtendedRefreshableMetadataResolver;
+import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
+import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+
+import lombok.extern.slf4j.Slf4j;
+import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
+import net.shibboleth.utilities.java.support.resolver.ResolverException;
+
+@Slf4j
+public class PvpMetadataResolverAdapter implements IPvp2MetadataProvider, IRefreshableMetadataProvider {
+
+ private final ExtendedRefreshableMetadataResolver internalProvider;
+
+ public PvpMetadataResolverAdapter(ExtendedRefreshableMetadataResolver provider) {
+ this.internalProvider = provider;
+ }
+
+ @Override
+ public void refresh() throws ResolverException {
+ internalProvider.refresh();
+
+ }
+
+ @Override
+ public DateTime getLastRefresh() {
+ return internalProvider.getLastRefresh();
+
+ }
+
+ @Override
+ public DateTime getLastUpdate() {
+ return internalProvider.getLastUpdate();
+ }
+
+ @Override
+ public boolean isRequireValidMetadata() {
+ return internalProvider.isRequireValidMetadata();
+
+ }
+
+ @Override
+ public void setRequireValidMetadata(boolean requireValidMetadata) {
+ internalProvider.setRequireValidMetadata(requireValidMetadata);
+
+ }
+
+ @Override
+ public MetadataFilter getMetadataFilter() {
+ return internalProvider.getMetadataFilter();
+
+ }
+
+ @Override
+ public void setMetadataFilter(MetadataFilter newFilter) {
+ internalProvider.setMetadataFilter(newFilter);
+
+ }
+
+ @Override
+ public Iterable<EntityDescriptor> resolve(CriteriaSet criteria) throws ResolverException {
+ return internalProvider.resolve(criteria);
+ }
+
+ @Override
+ public EntityDescriptor resolveSingle(CriteriaSet criteria) throws ResolverException {
+ return internalProvider.resolveSingle(criteria);
+
+ }
+
+ @Override
+ public String getId() {
+ return internalProvider.getId();
+ }
+
+ @Override
+ public EntityDescriptor getEntityDescriptor(String entityId) throws ResolverException {
+ final CriteriaSet criteria = new CriteriaSet();
+ criteria.add(new EntityIdCriterion(entityId));
+ return internalProvider.resolveSingle(criteria);
+
+ }
+
+ @Override
+ public DateTime getLastSuccessfulRefresh() {
+ return internalProvider.getLastSuccessfulRefresh();
+ }
+
+ @Override
+ public Boolean wasLastRefreshSuccess() {
+ return internalProvider.wasLastRefreshSuccess();
+ }
+
+ @Override
+ public boolean refreshMetadataProvider(String entityID) {
+ try {
+ log.trace("Refeshing metadata-provider: {} ... ", getId());
+ internalProvider.refresh();
+ return true;
+
+ } catch (final ResolverException e) {
+ log.warn("Refreshing of metadata-provider: {} failed. Reason: {}",
+ getId(), e.getMessage());
+ return false;
+
+ }
+ }
+
+}