コード例 #1
0
        /// <summary>
        /// Default constructor. Attempts to load configuration from configuration file.
        /// </summary>
        public OcspLookup()
        {
            this.logger = LoggerFactory.Create(this);
            OcspConfig configuration = ConfigurationHandler.GetConfigurationSection <OcspConfig>();

            this.Init(configuration, null);
        }
コード例 #2
0
        public bool Validate(OiosiMessage oiosiMessage)
        {
            bool result = true;
            SendingOptionConfig sendingOptionConfig = ConfigurationHandler.GetConfigurationSection <SendingOptionConfig>();

            this.logger.Trace("Start SendingValidation");

            if (sendingOptionConfig.SchemaValidationBool)
            {
                this.logger.Trace("Start schema");
                SchemaValidatorWithLookup schemaValidatorWithLookup = new SchemaValidatorWithLookup();
                //string document = oiosiMessage.MessageXml
                XmlDocument document = oiosiMessage.MessageXml;
                schemaValidatorWithLookup.Validate(document.OuterXml);
                result = true;
            }

            if (result && sendingOptionConfig.SchematronValidationBool)
            {
                this.logger.Trace("Start schematron");
                SchematronValidatorWithLookup schematronValidatorWithLookup = new SchematronValidatorWithLookup();
                //string document = oiosiMessage.MessageString;
                XmlDocument document = oiosiMessage.MessageXml;
                schematronValidatorWithLookup.Validate(document.OuterXml);
                result = true;
            }

            this.logger.Trace("Finish SendingValidation");
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Creates an IUddiLookup implementation, as set in config.
        /// </summary>
        /// <returns>The IUddiLookup implementation</returns>
        public IUddiLookupClient CreateUddiLookupClient(Uri address)
        {
            // 1. Get factory config:
            _config = ConfigurationHandler.GetConfigurationSection <UddiLookupClientFactoryConfig>();

            // 2. Get the type to load:
            if (string.IsNullOrEmpty(_config.ImplementationNamespaceClass))
            {
                throw new UddiNoImplementingClassException();
            }

            if (string.IsNullOrEmpty(_config.ImplementationAssembly))
            {
                throw new UddiNoImplementingAssemblyException();
            }

            string qualifiedTypename = _config.ImplementationNamespaceClass + ", " + _config.ImplementationAssembly;

            Type lookupClientType = Type.GetType(qualifiedTypename);

            if (lookupClientType == null)
            {
                throw new CouldNotLoadTypeException(qualifiedTypename);
            }

            // 3. Instantiate the type:
            object[]          parameters      = new object[] { address };
            Type[]            typeArray       = new Type[] { typeof(Uri) };
            ConstructorInfo   constructorInfo = lookupClientType.GetConstructor(typeArray);
            IUddiLookupClient lookupClient    = (IUddiLookupClient)constructorInfo.Invoke(parameters);

            return(lookupClient);
        }
コード例 #4
0
        /// <summary>
        /// Set default, test Ocsp factory
        /// </summary>
        public override void SetTestRevocationLookupFactoryConfig()
        {
            RevocationLookupFactoryConfig revoFactoryConfig = ConfigurationHandler.GetConfigurationSection <RevocationLookupFactoryConfig>();

            revoFactoryConfig.ImplementationAssembly       = "dk.gov.oiosi.library";
            revoFactoryConfig.ImplementationNamespaceClass = "dk.gov.oiosi.security.revocation.ocsp.OcspLookupTest";
        }
コード例 #5
0
        /// <summary>
        /// Set default live config values
        /// </summary>
        public virtual void SetOscpConfig()
        {
            // Live certificates here
            OcspConfig ocspConfig = ConfigurationHandler.GetConfigurationSection <OcspConfig>();

            ocspConfig.DefaultTimeoutMsec = 20000;
        }
コード例 #6
0
        static X509Certificate2 Ldap(CertificateSubject certSubject)
        {
            LdapSettings settings = ConfigurationHandler.GetConfigurationSection <LdapSettings>();

            // Print out info
            Console.WriteLine();
            Console.WriteLine("2. Certificate download");
            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine(" Using host");
            Console.WriteLine("  " + settings.Host);
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine();


            // Create the LDAP client
            LdapLookupFactory  ldapClientFactory = new LdapLookupFactory();
            ICertificateLookup ldapClient        = ldapClientFactory.CreateLdapLookupClient();

            // Lookup the certificate using LDAP
            X509Certificate2 certificate = ldapClient.GetCertificate(certSubject);

            Console.WriteLine(" Downloaded certificate with LDAP:");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("  " + certificate.Subject);
            Console.ForegroundColor = ConsoleColor.White;

            return(certificate);
        }
コード例 #7
0
        /// <summary>
        /// Builds an instance of an IRevocationLookup client based on configuration.
        /// </summary>
        /// <returns>ocsp lookup</returns>
        private IRevocationLookup CreateInstance()
        {
            // 1. Get factory config:
            RevocationLookupFactoryConfig config = ConfigurationHandler.GetConfigurationSection <RevocationLookupFactoryConfig>();

            return(this.CreateInstance(config));
        }
コード例 #8
0
        public void MyTest()
        {
            string fileName = "RaspConfiguration.UnitTest.SetupAllSections.xml";

            ConfigurationHandler.ConfigFilePath = fileName;
            DocumentTypeCollectionConfig configuration = ConfigurationHandler.GetConfigurationSection <DocumentTypeCollectionConfig>();
        }
コード例 #9
0
        /// <summary>
        /// Fill configuration section with default live values
        /// </summary>
        public virtual void SetSendingOptionConfig()
        {
            SendingOptionConfig SendingOptionConfig = ConfigurationHandler.GetConfigurationSection <SendingOptionConfig>();

            SendingOptionConfig.SchemaValidation     = bool.TrueString;
            SendingOptionConfig.SchematronValidation = bool.TrueString;
        }
コード例 #10
0
        /// <summary>
        /// Set default, test certificate root location
        /// </summary>
        public virtual void SetDefaultLdapConfigTest()
        {
            LdapCertificateLookupTestConfig ldapTestConfig = ConfigurationHandler.GetConfigurationSection <LdapCertificateLookupTestConfig>();

            ldapTestConfig.StoreLocation = StoreLocation.LocalMachine;
            ldapTestConfig.StoreName     = StoreName.Root;
        }
コード例 #11
0
        /// <summary>
        /// Use test Ldap config factory
        /// </summary>
        public virtual void SetTestLdapLookupFactoryConfig()
        {
            LdapLookupFactoryConfig ldapFactoryConfig = ConfigurationHandler.GetConfigurationSection <LdapLookupFactoryConfig>();

            ldapFactoryConfig.ImplementationAssembly       = "dk.gov.oiosi.library";
            ldapFactoryConfig.ImplementationNamespaceClass = "dk.gov.oiosi.security.ldap.LdapCertificateLookupTest";
        }
コード例 #12
0
        /// <summary>
        /// Returns a selected certificate based on configuration.
        /// </summary>
        /// <param name="certificateSubject">The subject serial number of the certificate</param>
        /// <returns>Returns a selected certificate based on configuration.</returns>
        public X509Certificate2 GetCertificate(CertificateSubject certificateSubject)
        {
            CertificateLoader certificateLoader = new CertificateLoader();

            switch (_config.Action)
            {
            case LdapCertificateLookupTestConfig.LookupAction.FindCertificate:
                // 1. Attempt to load the certificate from store:
                return(certificateLoader.GetCertificateFromStoreWithSSN(
                           certificateSubject.SerialNumberValue,
                           _config.StoreLocation,
                           _config.StoreName
                           ));

            case LdapCertificateLookupTestConfig.LookupAction.ConnectionFailed:
                LdapSettings settings = ConfigurationHandler.GetConfigurationSection <LdapSettings>();
                throw new ConnectingToLdapServerFailedException(settings, new Exception(this.ToString()));

            case LdapCertificateLookupTestConfig.LookupAction.SearchFailed:
                throw new SearchFailedException(new Exception(this.ToString()));

            default:
                throw new NotImplementedException();
            }
        }
コード例 #13
0
 /// <summary>
 /// Gets the single instance of the schematron store
 /// </summary>
 /// <returns></returns>
 public static SchematronStore GetSchematronStore()
 {
     lock (_lockObject) {
         if (_instance == null)
         {
             ISchematronStoreConfig config;
             if (ConfigurationHandler.HasConfigurationSection <SchematronStoreConfig>())
             {
                 config = ConfigurationHandler.GetConfigurationSection <SchematronStoreConfig>();
             }
             else
             {
                 config = (SchematronStoreConfig)ConfigurationManager.GetSection(SchematronStoreAppConfig.SCHEMATRONSTOREAPPCONFIGNAME);
             }
             if (config == null)
             {
                 _instance = new SchematronStore();
             }
             else
             {
                 _instance = new SchematronStore(config);
             }
         }
         return(_instance);
     }
 }
コード例 #14
0
        /// <summary>
        /// Default constructor. Attempts to load configuration from file.
        /// </summary>
        public OcspLookupTest()
        {
            // 1. Load normal OCSP config
            _config = ConfigurationHandler.GetConfigurationSection <OcspConfig>();

            // 2. Load OcspLookupTest-specific configuration:
            _testConfig = ConfigurationHandler.GetConfigurationSection <OcspLookupTestConfig>();
        }
コード例 #15
0
 private AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig GetClearDummyConfig()
 {
     // Clears the dummy so that all calls return a result
     AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig dummyConfig = ConfigurationHandler.GetConfigurationSection <AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig>();
     dummyConfig.NonExistingRegistrations.Clear();
     dummyConfig.ErroneousEndpoints.Clear();
     return(dummyConfig);
 }
コード例 #16
0
        /// <summary>
        /// Adds a document type definition to the collection
        /// </summary>
        /// <param name="profileMapping"></param>
        public virtual void Add(ProfileMapping profileMapping)
        {
            ProfileMappingCollectionConfig configuration = ConfigurationHandler.GetConfigurationSection <ProfileMappingCollectionConfig>();

            if (!configuration.ContainsProfileMappingByName(profileMapping.Name))
            {
                configuration.AddProfileMapping(profileMapping);
            }
        }
コード例 #17
0
        public void SetupAllSections()
        {
            string   fileName = "RaspConfiguration.UnitTest.SetupAllSections.xml";
            FileInfo fileInfo = new FileInfo(fileName);

            if (fileInfo.Exists)
            {
                fileInfo.Delete();
            }

            while (File.Exists(fileName))
            {
                // wait
                Thread.Sleep(1);
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
            }

            ConfigurationHandler.ConfigFilePath = fileName;
            ConfigurationHandler.Reset();

            SetupDefaultDocumentTypes();
            SetupProfileMappings();
            SetupDefaultLdapConfig();
            SetupDefaultOscpConfig();
            SetupDefaultUddiConfig();
            SetupDefaultCacheConfig();
            SetupDefaultRootCertificateConfig();
            SetupDefaultOcesCertificates();
            SetupDefaultSendingOptionConfig();
            ConfigurationHandler.SaveToFile();

            Assert.IsTrue(File.Exists(ConfigurationHandler.ConfigFilePath));
            FileInfo file = new FileInfo(ConfigurationHandler.ConfigFilePath);

            Assert.IsTrue(file.Length > 1024);

            DocumentTypeCollectionConfig docTypeConfig =
                ConfigurationHandler.GetConfigurationSection <DocumentTypeCollectionConfig>();

            Assert.AreEqual(35, docTypeConfig.DocumentTypes.Length, "Expected number of document types not found.");

            ProfileMappingCollectionConfig profileMappingConfig =
                ConfigurationHandler.GetConfigurationSection <ProfileMappingCollectionConfig>();

            //// OioXml           +2
            //// OIOUBL:         +22
            //// OIOUBL nesubl:   +6
            //// OIOUBL Utility:  +2
            //// OioUbl 20140915: +6
            //// Peppol profiles: +5
            //// NemKonto         +2
            //// TotalCount       45
            Assert.AreEqual(45, profileMappingConfig.ProfileMappings.Length, "Expected number of profilemappings not found.");
        }
コード例 #18
0
        public void _01_TestInitConfigurationEmpty()
        {
            ConfigurationHandler.ConfigFilePath = "Resources/RaspConfiguration.Live.xml";
            ConfigurationHandler.Reset();
            RootCertificateCollectionConfig rootCertificateCollectionConfig = ConfigurationHandler.GetConfigurationSection <RootCertificateCollectionConfig>();

            RootCertificateLocation[] rootCertificateLocation = rootCertificateCollectionConfig.RootCertificateCollection;

            Assert.AreEqual(1, rootCertificateLocation.Length, "Expected 2 root certificated.");
        }
コード例 #19
0
        public Program()
        {
            ConfigurationHandler.ConfigFilePath = "./RaspConfiguration.Live.xml";
            ConfigurationHandler.Reset();
            UddiConfig config = ConfigurationHandler.GetConfigurationSection <UddiConfig>();

            this.uddiServerUri = new Uri(config.LookupRegistryFallbackConfig.PrioritizedRegistryList[0].Endpoints[0]);

            this.PerformLookup();
        }
コード例 #20
0
        /// <summary>
        /// Sets the test UDDI lookup factory configuration
        /// </summary>
        public virtual void SetTestUddiLookupFactoryConfig()
        {
            UddiLookupClientFactoryConfig uddiFactoryConfig = ConfigurationHandler.GetConfigurationSection <UddiLookupClientFactoryConfig>();

            uddiFactoryConfig.ImplementationAssembly       = "dk.gov.oiosi.library";
            uddiFactoryConfig.ImplementationNamespaceClass = "dk.gov.oiosi.uddi.UddiLookupClientTest";

            RegistryLookupClientFactoryConfig regFactoryConfig = ConfigurationHandler.GetConfigurationSection <RegistryLookupClientFactoryConfig>();

            regFactoryConfig.ImplementationAssembly        = "dk.gov.oiosi.library";
            uddiFactoryConfig.ImplementationNamespaceClass = "dk.gov.oiosi.uddi.RegistryLookupClient";
        }
コード例 #21
0
        /// <summary>
        /// Fill configuration section with default live values
        /// </summary>
        public virtual void SetDefaultLdapConfig()
        {
            LdapSettings ldapSettings = ConfigurationHandler.GetConfigurationSection <LdapSettings>();

            // Lookup for live OCES certificates ldapSettings.Host = "dir.certifikat.dk";
            ldapSettings.Host                    = "crtdir.certifikat.dk";
            ldapSettings.MaxResults              = 1;
            ldapSettings.Port                    = 389;
            ldapSettings.ConnectionTimeoutMsec   = 5000;
            ldapSettings.SearchClientTimeoutMsec = 5000;
            ldapSettings.SearchServerTimeoutMsec = 5000;
        }
コード例 #22
0
        private void AddNoNamespaceTestDocumentType()
        {
            Console.WriteLine("ConfigurationHandler.Version=" + ConfigurationHandler.Version);
            Console.WriteLine("ConfigurationHandler.ConfigFilePath=" + ConfigurationHandler.ConfigFilePath);
            DocumentTypeCollectionConfig configuration = ConfigurationHandler.GetConfigurationSection <DocumentTypeCollectionConfig>();
            DocumentTypeConfig           documentType  = new DocumentTypeConfig();

            documentType.FriendlyName  = friendlyName;
            documentType.RootName      = "NoNamespace";
            documentType.RootNamespace = "";
            configuration.AddDocumentType(documentType);
        }
コード例 #23
0
        private void SetUpConfiguration()
        {
            // Configures fallback sequence
            UddiConfig uddiConfig = ConfigurationHandler.GetConfigurationSection <UddiConfig>();

            uddiConfig.FallbackTimeoutMinutes = 1;
            //uddiConfig.PublishEndpoint = uddiConfig.SecurityEndpoint = "http://a.com";
            uddiConfig.LookupRegistryFallbackConfig = new LookupRegistryFallbackConfig();
            uddiConfig.LookupRegistryFallbackConfig.PrioritizedRegistryList.Add(
                new Registry(
                    new List <string>()
            {
                firstRegistry.ToString(),
                firstFallback.ToString()
            }));

            uddiConfig.LookupRegistryFallbackConfig.PrioritizedRegistryList.Add(
                new Registry(
                    new List <string>()
            {
                secondRegistry.ToString(),
                secondFallback.ToString()
            }));

            uddiConfig.LookupRegistryFallbackConfig.PrioritizedRegistryList.Add(
                new Registry(
                    new List <string>()
            {
                thirdRegistry.ToString()
            }));

            uddiConfig.LookupRegistryFallbackConfig.PrioritizedRegistryList.Add(
                new Registry(
                    new List <string>()
            {
                fourthRegistry.ToString(),
                fourthFallback1.ToString(),
                fourthFallback2.ToString()
            }));

            // Configures factories for UDDI lookup clients used
            RegistryLookupClientFactoryConfig registryLookupClientFactoryConfig = ConfigurationHandler.GetConfigurationSection <RegistryLookupClientFactoryConfig>();

            registryLookupClientFactoryConfig.ImplementationNamespaceClass = typeof(RegistryLookupClient).FullName;
            registryLookupClientFactoryConfig.ImplementationAssembly       = typeof(RegistryLookupClient).Assembly.FullName;
            UddiLookupClientFactoryConfig uddiLookupClientFactoryConfig = ConfigurationHandler.GetConfigurationSection <UddiLookupClientFactoryConfig>();

            uddiLookupClientFactoryConfig.ImplementationNamespaceClass = typeof(AdvancedUddiDummyClient).FullName;
            uddiLookupClientFactoryConfig.ImplementationAssembly       = typeof(AdvancedUddiDummyClient).Assembly.FullName;
        }
コード例 #24
0
        /// <summary>
        /// Set default, test values
        /// </summary>
        public virtual void SetTestOcesCertificateConfig()
        {
            OcesX509CertificateConfig config = ConfigurationHandler.GetConfigurationSection <OcesX509CertificateConfig>();

            string personalOcesCertificateSubjectKey     = "PID";
            string employeeOcesCertificateSubjectKey     = "RID";
            string organizationOcesCertificateSubjectKey = "UID";
            string functionOcesCertificateSubjectKey     = "FID";

            config.PersonalCertificateSubjectKey.SubjectKeyString     = personalOcesCertificateSubjectKey;
            config.EmployeeCertificateSubjectKey.SubjectKeyString     = employeeOcesCertificateSubjectKey;
            config.OrganizationCertificateSubjectKey.SubjectKeyString = organizationOcesCertificateSubjectKey;
            config.FunctionCertificateSubjetKey.SubjectKeyString      = functionOcesCertificateSubjectKey;
        }
コード例 #25
0
        static UddiLookupResponse Uddi(OiosiMessage message, DocumentTypeConfig docTypeConfig)
        {
            UddiConfig uddiConfig = ConfigurationHandler.GetConfigurationSection <UddiConfig>();

            Console.WriteLine("1. UDDI services");

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine(" Using UDDI/NemHandel register(s):");
            foreach (Registry registry in uddiConfig.LookupRegistryFallbackConfig.PrioritizedRegistryList)
            {
                foreach (string endpoint in registry.Endpoints)
                {
                    Console.WriteLine("  " + endpoint);
                }
            }

            // Create a uddi client
            RegistryLookupClientFactory uddiClientFactory = new RegistryLookupClientFactory();

            uddiClient = uddiClientFactory.CreateUddiLookupClient();

            // Get the UDDI parameters with which to call the UDDI server
            LookupParameters parameters = GetUddiParameters(message, docTypeConfig);

            Console.WriteLine(" Lookup Parameters");
            Console.WriteLine("  EndPoint      : " + parameters.Identifier.ToString());
            Console.WriteLine("  EndPoint type : " + parameters.Identifier.KeyTypeCode);
            Console.WriteLine("  Profile       : " + GetProfileName(message, docTypeConfig));

            // Perform the actual UDDI lookup
            UddiLookupResponse uddiResponse = PerformUddiLookup(parameters);

            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(" Got UDDI reply:");
            Console.ForegroundColor = ConsoleColor.Yellow;

            if (uddiResponse == null)
            {
                Console.WriteLine("  The endpoint is no registrated in UDDI!");
            }
            else
            {
                Console.WriteLine("  " + uddiResponse.EndpointAddress.GetKeyAsString());
            }
            Console.ForegroundColor = ConsoleColor.White;

            return(uddiResponse);
        }
コード例 #26
0
        /// <summary>
        /// Sets the default uddi configuration
        /// </summary>
        public virtual void SetDefaultUddiConfig()
        {
            UddiConfig uddiConfig = ConfigurationHandler.GetConfigurationSection <UddiConfig>();

            uddiConfig.TryOtherHostsOnFailure       = true;
            uddiConfig.FallbackTimeoutMinutes       = 15;
            uddiConfig.LookupRegistryFallbackConfig = new LookupRegistryFallbackConfig();
            uddiConfig.LookupRegistryFallbackConfig.PrioritizedRegistryList.Add(
                new Registry(
                    new List <string>()
            {
                "http://discoverypublic.nemhandel.dk/uddi/services/inquiry",
                "http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry"
            })
                );
        }
コード例 #27
0
        public void ConfigurationFileMustContainExactlyOneSectionOfEachTypeAccessedEvenIfTheSectionIsNotPreloaded()
        {
            var configFileWithEmailSection = GetConfigFileWithEmailTransportConfigSectionWithOnlyCertificatesSet();

            ConfigurationHandler.ConfigFilePath = configFileWithEmailSection.FullName;
            ConfigurationHandler.Reset();
            ConfigurationHandler.PreloadRegisteredConfigurationSections();
            ConfigurationHandler.SaveToFile();

            ConfigurationHandler.GetConfigurationSection <EmailTransportUserConfig>();
            ConfigurationHandler.SaveToFile();

            var rootNode = GetRaspConfigurationNode(configFileWithEmailSection);

            AssertNodeHasExactlyOneConfigurationSectionWithName(rootNode, "EmailTransportUserConfig");
        }