Skip to content

Commit

Permalink
Merged in SHIBUI-1625 (pull request #421)
Browse files Browse the repository at this point in the history
SHIBUI-1625
  • Loading branch information
dima767 authored and rmathis committed Nov 15, 2019
2 parents c0dd943 + 0bfc0e1 commit a388a22
Show file tree
Hide file tree
Showing 7 changed files with 112 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import static edu.internet2.tier.shibboleth.admin.util.DurationUtility.toMillis;
Expand Down Expand Up @@ -83,6 +84,15 @@ protected void initMetadataResolver() throws ComponentInitializationException {
indexWriter);
}

@Nonnull
@Override
protected BatchEntityBackingStore getBackingStore() {
if (super.getBackingStore() == null) {
super.setBackingStore(super.createNewBackingStore());
}
return super.getBackingStore();
}

/**
* {@inheritDoc}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.File;

Expand Down Expand Up @@ -51,15 +52,31 @@ public DateTime getLastRefresh() {

@Override
protected void initMetadataResolver() throws ComponentInitializationException {
//Necessary to make sure backing store is initialized by the super class to avoid NPE during re-filtering
try {
setBackingStore(createNewBackingStore());
}
catch(Throwable e) {
logger.warn("Error caught and ignored during initialization necessary to init backingStore", e);
}

if (this.sourceResolver.getDoInitialization()) {
super.initMetadataResolver();

delegate.addIndexedDescriptorsFromBackingStore(this.getBackingStore(),
this.sourceResolver.getResourceId(),
indexWriter);
}
}

@Nonnull
@Override
protected BatchEntityBackingStore getBackingStore() {
if (super.getBackingStore() == null) {
super.setBackingStore(super.createNewBackingStore());
}
return super.getBackingStore();
}

/**
* {@inheritDoc}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.IOException;

Expand Down Expand Up @@ -59,6 +60,15 @@ protected void initMetadataResolver() throws ComponentInitializationException {
indexWriter);
}

@Nonnull
@Override
protected BatchEntityBackingStore getBackingStore() {
if (super.getBackingStore() == null) {
super.setBackingStore(super.createNewBackingStore());
}
return super.getBackingStore();
}

/**
* {@inheritDoc}
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers

import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlFileBackedHTTPMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.service.TokenPlaceholderValueResolvingService
import edu.internet2.tier.shibboleth.admin.util.TokenPlaceholderResolvers
import org.springframework.core.env.MutablePropertySources
import spock.lang.Specification

class OpenSamlFileBackedHTTPMetadataResolverTests extends Specification {
def openSamlObjects = new OpenSamlObjects().with {
init()
it
}

def "test refresh"() {
when:
new TokenPlaceholderResolvers(TokenPlaceholderValueResolvingService.shibbolethPlaceholderPrefixAware(new MutablePropertySources()))
def fbhmr = new FileBackedHttpMetadataResolver(name: 'test', xmlId: 'test', metadataURL: 'http://testme', backingFile: 'metadata/testme.xml')

def x = new OpenSamlFileBackedHTTPMetadataResolver(openSamlObjects.parserPool, null, fbhmr)
x.refilter()

then:
noExceptionThrown()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers

import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlFilesystemMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import spock.lang.Specification

class OpenSamlFilesystemMetadataResolverTests extends Specification {
def openSamlObjects = new OpenSamlObjects().with {
init()
it
}

def "test refresh"() {
when:
def fsmr = new FilesystemMetadataResolver(name: 'test', xmlId: 'test', metadataFile: 'metadata/metadata.xml')
def x = new OpenSamlFilesystemMetadataResolver(openSamlObjects.parserPool, null, fsmr, new File(fsmr.metadataFile))
x.refilter()

then:
noExceptionThrown()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers

import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlResourceBackedMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import net.shibboleth.ext.spring.resource.ResourceHelper
import org.springframework.core.io.ClassPathResource
import spock.lang.Specification

class OpenSamlResourceBackedMetadataResolverTests extends Specification {
def openSamlObjects = new OpenSamlObjects().with {
init()
it
}

def 'test refresh'() {
when:
def rbmr = new ResourceBackedMetadataResolver(name: 'test', xmlId: 'test', classpathMetadataResource: new ClasspathMetadataResource('metadata/metadata.xml'))
def x = new OpenSamlResourceBackedMetadataResolver(openSamlObjects.parserPool, null, rbmr, ResourceHelper.of(new ClassPathResource(rbmr.classpathMetadataResource.file)))
x.refilter()

then:
noExceptionThrown()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ClasspathMetadataResource
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FilesystemMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataQueryProtocolScheme
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.RegexScheme
Expand Down

0 comments on commit a388a22

Please sign in to comment.