Search in sources :

Example 6 with IdentityProviderConfig

use of uk.gov.ida.hub.config.domain.IdentityProviderConfig in project verify-hub by alphagov.

the class ConfigDataBootstrapTest method start_shouldThrowExceptionWhenMatchingTransactionEntityIdCheckFails.

@Test
public void start_shouldThrowExceptionWhenMatchingTransactionEntityIdCheckFails() {
    final String transEntityId = "trans-entity-id";
    final String simpleId = "simple-id";
    final IdentityProviderConfig identityProviderConfigData = anIdentityProviderConfigData().withEntityId("entity-id").build();
    final TransactionConfig transactionConfigData = aTransactionConfigData().withEntityId(transEntityId).withMatchingServiceEntityId(NON_EXISTENT_MATCHING_SERVICE_ENTITY_ID).build();
    final TranslationData translationData = aTranslationData().withSimpleId(simpleId).build();
    final MatchingServiceConfig matchingServiceConfigData = aMatchingServiceConfig().withEntityId(MATCHING_SERVICE_ENTITY_ID).build();
    ConfigDataBootstrap configDataBootstrap = createConfigDataBootstrap(identityProviderConfigData, matchingServiceConfigData, transactionConfigData, translationData);
    try {
        configDataBootstrap.start();
        fail("fail");
    } catch (ConfigValidationException e) {
        assertThat(e.getMessage()).isEqualTo(ConfigValidationException.createAbsentMatchingServiceConfigException(NON_EXISTENT_MATCHING_SERVICE_ENTITY_ID, transEntityId).getMessage());
    }
}
Also used : MatchingServiceConfig(uk.gov.ida.hub.config.domain.MatchingServiceConfig) MatchingServiceConfigBuilder.aMatchingServiceConfig(uk.gov.ida.hub.config.domain.builders.MatchingServiceConfigBuilder.aMatchingServiceConfig) TranslationDataBuilder.aTranslationData(uk.gov.ida.hub.config.domain.builders.TranslationDataBuilder.aTranslationData) TranslationData(uk.gov.ida.hub.config.domain.TranslationData) IdentityProviderConfig(uk.gov.ida.hub.config.domain.IdentityProviderConfig) TransactionConfig(uk.gov.ida.hub.config.domain.TransactionConfig) ConfigValidationException(uk.gov.ida.hub.config.exceptions.ConfigValidationException) Test(org.junit.jupiter.api.Test)

Example 7 with IdentityProviderConfig

use of uk.gov.ida.hub.config.domain.IdentityProviderConfig in project verify-hub by alphagov.

the class ConfigDataBootstrapTest method continuesToStart_WhenCertificateCheckHasInvalidCertificates.

@Disabled
public void continuesToStart_WhenCertificateCheckHasInvalidCertificates() {
    final String idpEntityId = "idp-entity-id";
    final String simpleId = "simple-id";
    final String matchingServiceId = "matching-service-id";
    final String rpEntityId = "rp-entity";
    String badCertificateValue = "badCertificate";
    final IdentityProviderConfig identityProviderConfigData = anIdentityProviderConfigData().withEntityId(idpEntityId).build();
    MatchingServiceConfig matchingServiceConfigData = aMatchingServiceConfig().addSignatureVerificationCertificate(badCertificateValue).withEntityId(matchingServiceId).build();
    TransactionConfig transactionConfigData = aTransactionConfigData().withMatchingServiceEntityId(matchingServiceId).withEntityId(rpEntityId).build();
    final TranslationData translationData = aTranslationData().withSimpleId(simpleId).build();
    InvalidCertificateDto invalidIdpCertificateDto = new InvalidCertificateDto(idpEntityId, CertPathValidatorException.BasicReason.INVALID_SIGNATURE, CertificateUse.SIGNING, FederationEntityType.IDP, "certificate was bad!");
    InvalidCertificateDto invalidMatchingServiceCertificateDto = new InvalidCertificateDto(matchingServiceId, CertPathValidatorException.BasicReason.NOT_YET_VALID, CertificateUse.SIGNING, FederationEntityType.MS, "certificate was not yet valid!");
    doThrow(createInvalidCertificatesException(List.of(invalidMatchingServiceCertificateDto, invalidIdpCertificateDto))).when(certificateChainConfigValidator).validate(Set.of(transactionConfigData, matchingServiceConfigData));
    ConfigDataBootstrap configDataBootstrap = createConfigDataBootstrap(identityProviderConfigData, matchingServiceConfigData, transactionConfigData, translationData);
    configDataBootstrap.start();
}
Also used : MatchingServiceConfig(uk.gov.ida.hub.config.domain.MatchingServiceConfig) MatchingServiceConfigBuilder.aMatchingServiceConfig(uk.gov.ida.hub.config.domain.builders.MatchingServiceConfigBuilder.aMatchingServiceConfig) TranslationDataBuilder.aTranslationData(uk.gov.ida.hub.config.domain.builders.TranslationDataBuilder.aTranslationData) TranslationData(uk.gov.ida.hub.config.domain.TranslationData) IdentityProviderConfig(uk.gov.ida.hub.config.domain.IdentityProviderConfig) TransactionConfig(uk.gov.ida.hub.config.domain.TransactionConfig) InvalidCertificateDto(uk.gov.ida.hub.config.dto.InvalidCertificateDto) Disabled(org.junit.jupiter.api.Disabled)

Example 8 with IdentityProviderConfig

use of uk.gov.ida.hub.config.domain.IdentityProviderConfig in project verify-hub by alphagov.

the class ConfigDataBootstrapTest method start_shouldThrowExceptionWhenDuplicateEntityIdsExist.

@Test
public void start_shouldThrowExceptionWhenDuplicateEntityIdsExist() {
    final String entityId = "entity-id";
    final String simpleId = "simple-id";
    final String matchingServiceEntityId = "matching-service-entity-id";
    final IdentityProviderConfig identityProviderConfigData = anIdentityProviderConfigData().withEntityId(entityId).build();
    final TransactionConfig transactionConfigData = aTransactionConfigData().withEntityId(entityId).withMatchingServiceEntityId(matchingServiceEntityId).build();
    final TranslationData translationData = aTranslationData().withSimpleId(simpleId).build();
    final MatchingServiceConfig matchingServiceConfigData = aMatchingServiceConfig().withEntityId(matchingServiceEntityId).build();
    ConfigDataBootstrap configDataBootstrap = createConfigDataBootstrap(identityProviderConfigData, matchingServiceConfigData, transactionConfigData, translationData);
    try {
        configDataBootstrap.start();
        fail("fail");
    } catch (ConfigValidationException e) {
        assertThat(e.getMessage()).isEqualTo(ConfigValidationException.createDuplicateEntityIdException(entityId).getMessage());
    }
}
Also used : MatchingServiceConfig(uk.gov.ida.hub.config.domain.MatchingServiceConfig) MatchingServiceConfigBuilder.aMatchingServiceConfig(uk.gov.ida.hub.config.domain.builders.MatchingServiceConfigBuilder.aMatchingServiceConfig) TranslationDataBuilder.aTranslationData(uk.gov.ida.hub.config.domain.builders.TranslationDataBuilder.aTranslationData) TranslationData(uk.gov.ida.hub.config.domain.TranslationData) IdentityProviderConfig(uk.gov.ida.hub.config.domain.IdentityProviderConfig) TransactionConfig(uk.gov.ida.hub.config.domain.TransactionConfig) ConfigValidationException(uk.gov.ida.hub.config.exceptions.ConfigValidationException) Test(org.junit.jupiter.api.Test)

Example 9 with IdentityProviderConfig

use of uk.gov.ida.hub.config.domain.IdentityProviderConfig in project verify-hub by alphagov.

the class LevelsOfAssuranceConfigValidatorTest method shouldNotThrowWhenAnIdpsIsOnboardingAndDoesNotSupportATransaction.

@Test
public void shouldNotThrowWhenAnIdpsIsOnboardingAndDoesNotSupportATransaction() {
    Set<TransactionConfig> transactionsConfig = Set.of(loa1And2Transaction);
    final IdentityProviderConfig onboardingIdp = IdentityProviderConfigDataBuilder.anIdentityProviderConfigData().withOnboarding(List.of("some-other-transaction-id")).withSupportedLevelsOfAssurance(List.of(LevelOfAssurance.LEVEL_3)).build();
    Set<IdentityProviderConfig> identityProviderConfig = Set.of(onboardingIdp, loa1And2Idp);
    try {
        levelsOfAssuranceConfigValidator.validateAllTransactionsAreSupportedByIDPs(identityProviderConfig, transactionsConfig);
    } catch (Exception e) {
        fail("Expected exception not thrown");
    }
}
Also used : IdentityProviderConfig(uk.gov.ida.hub.config.domain.IdentityProviderConfig) TransactionConfig(uk.gov.ida.hub.config.domain.TransactionConfig) ConfigValidationException(uk.gov.ida.hub.config.exceptions.ConfigValidationException) Test(org.junit.jupiter.api.Test)

Example 10 with IdentityProviderConfig

use of uk.gov.ida.hub.config.domain.IdentityProviderConfig in project verify-hub by alphagov.

the class ConfigValidCommand method run.

@Override
public void run(Bootstrap<ConfigConfiguration> bootstrap, Namespace namespace, ConfigConfiguration configuration) {
    Injector injector = Guice.createInjector(new AbstractModule() {

        @Override
        protected void configure() {
            bind(new TypeLiteral<ConfigurationFactoryFactory<IdentityProviderConfig>>() {
            }).toInstance(new DefaultConfigurationFactoryFactory<>());
            bind(new TypeLiteral<ConfigurationFactoryFactory<MatchingServiceConfig>>() {
            }).toInstance(new DefaultConfigurationFactoryFactory<>());
            bind(new TypeLiteral<ConfigurationFactoryFactory<TransactionConfig>>() {
            }).toInstance(new DefaultConfigurationFactoryFactory<>());
            bind(new TypeLiteral<ConfigurationFactoryFactory<TranslationData>>() {
            }).toInstance(new DefaultConfigurationFactoryFactory<>());
            bind(new TypeLiteral<ConfigDataSource<TransactionConfig>>() {
            }).to(FileBackedTransactionConfigDataSource.class).asEagerSingleton();
            bind(new TypeLiteral<ConfigDataSource<TranslationData>>() {
            }).to(FileBackedTranslationsDataSource.class).asEagerSingleton();
            bind(new TypeLiteral<ConfigDataSource<MatchingServiceConfig>>() {
            }).to(FileBackedMatchingServiceConfigDataSource.class).asEagerSingleton();
            bind(new TypeLiteral<ConfigDataSource<IdentityProviderConfig>>() {
            }).to(FileBackedIdentityProviderConfigDataSource.class).asEagerSingleton();
            bind(new TypeLiteral<LocalConfigRepository<TransactionConfig>>() {
            }).asEagerSingleton();
            bind(new TypeLiteral<LocalConfigRepository<TranslationData>>() {
            }).asEagerSingleton();
            bind(new TypeLiteral<LocalConfigRepository<MatchingServiceConfig>>() {
            }).asEagerSingleton();
            bind(new TypeLiteral<LocalConfigRepository<IdentityProviderConfig>>() {
            }).asEagerSingleton();
            bind(ConfigConfiguration.class).toInstance(configuration);
            bind(LevelsOfAssuranceConfigValidator.class).toInstance(new LevelsOfAssuranceConfigValidator());
            bind(TrustStoreConfiguration.class).to(ConfigConfiguration.class);
            bind(TrustStoreForCertificateProvider.class);
            bind(CertificateChainConfigValidator.class);
        }
    });
    ConfigDataBootstrap checkConfigValid = injector.getInstance(ConfigDataBootstrap.class);
    try {
        checkConfigValid.start();
    } catch (ConfigValidationException e) {
        LOG.info(e.getMessage());
        throw e;
    }
}
Also used : TrustStoreForCertificateProvider(uk.gov.ida.hub.config.truststore.TrustStoreForCertificateProvider) DefaultConfigurationFactoryFactory(io.dropwizard.configuration.DefaultConfigurationFactoryFactory) ConfigurationFactoryFactory(io.dropwizard.configuration.ConfigurationFactoryFactory) TypeLiteral(com.google.inject.TypeLiteral) MatchingServiceConfig(uk.gov.ida.hub.config.domain.MatchingServiceConfig) Injector(com.google.inject.Injector) LevelsOfAssuranceConfigValidator(uk.gov.ida.hub.config.data.LevelsOfAssuranceConfigValidator) CertificateChainConfigValidator(uk.gov.ida.hub.config.domain.CertificateChainConfigValidator) LocalConfigRepository(uk.gov.ida.hub.config.data.LocalConfigRepository) TranslationData(uk.gov.ida.hub.config.domain.TranslationData) IdentityProviderConfig(uk.gov.ida.hub.config.domain.IdentityProviderConfig) TransactionConfig(uk.gov.ida.hub.config.domain.TransactionConfig) ConfigValidationException(uk.gov.ida.hub.config.exceptions.ConfigValidationException) AbstractModule(com.google.inject.AbstractModule) DefaultConfigurationFactoryFactory(io.dropwizard.configuration.DefaultConfigurationFactoryFactory) ConfigDataBootstrap(uk.gov.ida.hub.config.data.ConfigDataBootstrap)

Aggregations

IdentityProviderConfig (uk.gov.ida.hub.config.domain.IdentityProviderConfig)10 TransactionConfig (uk.gov.ida.hub.config.domain.TransactionConfig)8 Test (org.junit.jupiter.api.Test)7 TranslationData (uk.gov.ida.hub.config.domain.TranslationData)6 ConfigValidationException (uk.gov.ida.hub.config.exceptions.ConfigValidationException)6 MatchingServiceConfig (uk.gov.ida.hub.config.domain.MatchingServiceConfig)5 TranslationDataBuilder.aTranslationData (uk.gov.ida.hub.config.domain.builders.TranslationDataBuilder.aTranslationData)4 MatchingServiceConfigBuilder.aMatchingServiceConfig (uk.gov.ida.hub.config.domain.builders.MatchingServiceConfigBuilder.aMatchingServiceConfig)3 TypeLiteral (com.google.inject.TypeLiteral)2 ConfigDataBootstrap (uk.gov.ida.hub.config.data.ConfigDataBootstrap)2 LevelsOfAssuranceConfigValidator (uk.gov.ida.hub.config.data.LevelsOfAssuranceConfigValidator)2 CertificateChainConfigValidator (uk.gov.ida.hub.config.domain.CertificateChainConfigValidator)2 AbstractModule (com.google.inject.AbstractModule)1 Injector (com.google.inject.Injector)1 ConfigurationFactoryFactory (io.dropwizard.configuration.ConfigurationFactoryFactory)1 DefaultConfigurationFactoryFactory (io.dropwizard.configuration.DefaultConfigurationFactoryFactory)1 Disabled (org.junit.jupiter.api.Disabled)1 X509CertificateFactory (uk.gov.ida.common.shared.security.X509CertificateFactory)1 OCSPPKIXParametersProvider (uk.gov.ida.common.shared.security.verification.OCSPPKIXParametersProvider)1 PKIXParametersProvider (uk.gov.ida.common.shared.security.verification.PKIXParametersProvider)1