Skip to content

Commit

Permalink
Merge branch 'master' into SHIBUI-646
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Aug 24, 2018
2 parents 2ed814c + 644883c commit f309ce5
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package edu.internet2.tier.shibboleth.admin.ui.configuration;

import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver;
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects;
import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository;
import edu.internet2.tier.shibboleth.admin.ui.service.IndexWriterService;
Expand Down Expand Up @@ -39,7 +40,7 @@ public class MetadataResolverConfiguration {

@Bean
public MetadataResolver metadataResolver() throws ResolverException, ComponentInitializationException {
ChainingMetadataResolver metadataResolver = new ChainingMetadataResolver();
ChainingMetadataResolver metadataResolver = new OpenSamlChainingMetadataResolver();
metadataResolver.setId("chain");

List<MetadataResolver> resolvers = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml;

import com.google.common.base.Predicates;
import com.google.common.collect.Collections2;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* @author Bill Smith (wsmith@unicon.net)
*/
public class OpenSamlChainingMetadataResolver extends ChainingMetadataResolver {
@Nonnull private final Logger log = LoggerFactory.getLogger(OpenSamlChainingMetadataResolver.class);

@Nonnull @NonnullElements private List<MetadataResolver> mutableResolvers;

public OpenSamlChainingMetadataResolver() {
this.mutableResolvers = Collections.emptyList();
}

public OpenSamlChainingMetadataResolver(@Nonnull List<MetadataResolver> mutableResolvers) {
this.mutableResolvers = mutableResolvers;
}

@Override
public void setResolvers(@Nonnull @NonnullElements final List<? extends MetadataResolver> newResolvers)
throws ResolverException {
if (newResolvers == null || newResolvers.isEmpty()) {
mutableResolvers = Collections.emptyList();
return;
}

mutableResolvers = new ArrayList<>(Collections2.filter(newResolvers, Predicates.notNull()));
}

@Nonnull
@NonnullElements
@Override
public List<MetadataResolver> getResolvers() {
return mutableResolvers;
}

@Override
protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
if (mutableResolvers == null) {
log.warn("OpenSamlChainingMetadataResolver was not configured with any member MetadataResolvers");
mutableResolvers = Collections.emptyList();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package edu.internet2.tier.shibboleth.admin.ui.configuration

import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository
import edu.internet2.tier.shibboleth.admin.ui.service.IndexWriterService
Expand Down Expand Up @@ -36,7 +37,7 @@ class TestConfiguration {

@Bean
MetadataResolver metadataResolver() {
ChainingMetadataResolver metadataResolver = new ChainingMetadataResolver()
ChainingMetadataResolver metadataResolver = new OpenSamlChainingMetadataResolver()
metadataResolver.setId("chain")
String resolverId = "test"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,23 @@
"initializeFromBackupFile": [
true
]
}
},
"widget": {
"id": "datalist",
"data": [
"PT0S",
"PT30S",
"PT1M",
"PT10M",
"PT30M",
"PT1H",
"PT4H",
"PT12H",
"PT24H"
]
},
"default": null,
"pattern": "^(R\\d*\\/)?P(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
},
"requireValidMetadata": {
"title": "Require Valid Metadata?",
Expand Down
18 changes: 17 additions & 1 deletion ui/src/assets/schema/provider/filebacked-http-common.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,23 @@
"initializeFromBackupFile": [
true
]
}
},
"widget": {
"id": "datalist",
"data": [
"PT0S",
"PT30S",
"PT1M",
"PT10M",
"PT30M",
"PT1H",
"PT4H",
"PT12H",
"PT24H"
]
},
"default": null,
"pattern": "^(R\\d*\\/)?P(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
},
"requireValidMetadata": {
"title": "Require Valid Metadata?",
Expand Down

0 comments on commit f309ce5

Please sign in to comment.