Skip to content

Commit

Permalink
SHIBUI-1742
Browse files Browse the repository at this point in the history
Fixing tests after merging master changes in
  • Loading branch information
chasegawa committed Aug 11, 2021
1 parent b3ee1e6 commit e4a60ca
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,9 @@ package edu.internet2.tier.shibboleth.admin.ui.service
import com.google.common.base.Predicate
import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration
import edu.internet2.tier.shibboleth.admin.ui.domain.exceptions.MetadataFileNotFoundException
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.SignatureValidationFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.*
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.opensaml.OpenSamlNameIdFormatFilter
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver
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.MetadataRequestURLConstructionScheme
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.RegexScheme
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.TemplateScheme
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.*
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.Refilterable
import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException
Expand All @@ -44,20 +31,14 @@ import org.springframework.stereotype.Service
import org.w3c.dom.Document

import javax.annotation.Nonnull
import javax.transaction.Transactional

import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.ENTITY
import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.CONDITION_SCRIPT
import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.REGEX
import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.*
import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver.ResourceType.CLASSPATH
import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver.ResourceType.SVN

@Slf4j
@Service
class JPAMetadataResolverServiceImpl implements MetadataResolverService {

@Autowired
org.opensaml.saml.metadata.resolver.MetadataResolver chainingMetadataResolver

@Autowired
private MetadataResolver metadataResolver
Expand All @@ -67,16 +48,16 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {

@Autowired
private MetadataResolverRepository metadataResolverRepository

@Autowired
private OpenSamlObjects openSamlObjects

@Autowired
private MetadataResolversPositionOrderContainerService resolversPositionOrderContainerService

@Autowired
private ShibUIConfiguration shibUIConfiguration

@Autowired
private UserService userService

Expand Down Expand Up @@ -142,6 +123,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
}
}


void constructXmlNodeForFilter(NameIdFormatFilter filter, def markupBuilderDelegate) {
def type = filter.nameIdFormatFilterTarget.nameIdFormatFilterTargetType
markupBuilderDelegate.MetadataFilter(
Expand Down Expand Up @@ -429,7 +411,6 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
return result
}

// TODO: enhance
@Override
Document generateConfiguration() {
// TODO: this can probably be a better writer
Expand Down Expand Up @@ -481,7 +462,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
private String protectedNamespaceScript() {
return """(function (attribute) {
"use strict";
var namespaces = [${shibUIConfiguration.protectedAttributeNamespaces.collect({"\"${it}\""}).join(', ')}];
var namespaces = [${shibUIConfiguration.protectedAttributeNamespaces.collect({ "\"${it}\"" }).join(', ')}];
// check the parameter
if (attribute === null) { return true; }
for (var i in namespaces) {
Expand All @@ -492,8 +473,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
return true;
}(input));"""
}

// TODO: enhance

@Override
void reloadFilters(String metadataResolverResourceId) {
OpenSamlChainingMetadataResolver chainingMetadataResolver = (OpenSamlChainingMetadataResolver) metadataResolver
Expand Down Expand Up @@ -577,15 +557,15 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
log.warn("Target resolver is not a Refilterable resolver. Skipping refilter()")
}
}

public edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver updateMetadataResolverEnabledStatus(edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver updatedResolver) throws ForbiddenException, MetadataFileNotFoundException, InitializationException {
// @TODO: when merged with groups, this should maybe be merged with group check as they have to have the role in the right group
if (!userService.currentUserHasExpectedRole(["ROLE_ADMIN", "ROLE_ENABLE"])) {
throw new ForbiddenException("You do not have the permissions necessary to change the enable status of this filter.")
}

edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver persistedResolver = metadataResolverRepository.save(updatedResolver)

if (persistedResolver.getDoInitialization()) {
MetadataResolver openSamlRepresentation = null
try {
Expand All @@ -600,13 +580,13 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
throw new InitializationException(e);
}
}

}

private class ScriptedPredicate extends net.shibboleth.utilities.java.support.logic.ScriptedPredicate<EntityDescriptor> {
protected ScriptedPredicate(@Nonnull EvaluableScript theScript) {
super(theScript)
}
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.boot.test.context.TestConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Profile
import org.springframework.data.jpa.repository.config.EnableJpaRepositories
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration

import spock.lang.Specification
Expand All @@ -33,6 +35,7 @@ import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.*
@ContextConfiguration(classes = [CoreShibUiConfiguration, SearchConfiguration, InternationalizationConfiguration, edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration ,LocalConfig])
@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"])
@EntityScan("edu.internet2.tier.shibboleth.admin.ui")
@ActiveProfiles(["local"])
class IncommonJPAMetadataResolverServiceImplTests extends Specification {
@Autowired
MetadataResolverService metadataResolverService
Expand Down Expand Up @@ -106,6 +109,7 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification {

//TODO: check that this configuration is sufficient
@TestConfiguration
@Profile("local")
static class LocalConfig {
@Autowired
OpenSamlObjects openSamlObjects
Expand Down

0 comments on commit e4a60ca

Please sign in to comment.