private void ValidateEndpoint(InputEndpointType httpEndpoint, CertificatesType certificates, bool verifyCertificates)
        {
            if (httpEndpoint.Protocol != InputEndpointTypeProtocol.http &&
                httpEndpoint.Protocol != InputEndpointTypeProtocol.https)
            {
                throw new ArgumentException(
                          string.Format(
                              "ValidateHttpGatewaySettings failed as HttpGatewayEndpoint.Protocol is invalid: {0}",
                              httpEndpoint.Protocol));
            }

            if (!verifyCertificates)
            {
                return;
            }

            //
            // If protocol is https, then server certificates have to be specified.
            //
            if (httpEndpoint.Protocol == InputEndpointTypeProtocol.https)
            {
                if (certificates == null ||
                    certificates.ServerCertificate == null ||
                    certificates.ServerCertificate.X509FindValue == null ||
                    certificates.ServerCertificate.X509FindValue.Length == 0)
                {
                    throw new ArgumentException(
                              "ValidateHttpGatewaySettings failed as ServerCertificate is not specified with HttpGatewayEndpoint Protocol https");
                }
            }

            //
            // If server certificates are specified, the protocol should be https.
            //
            if (certificates != null &&
                certificates.ServerCertificate != null &&
                certificates.ServerCertificate.X509FindValue != null &&
                certificates.ServerCertificate.X509FindValue.Length != 0)
            {
                if (httpEndpoint.Protocol != InputEndpointTypeProtocol.https)
                {
                    throw new ArgumentException(
                              "ValidateHttpGatewaySettings failed as ServerCertificate is specified and the HttpGatewayEndpoint Protocol is not https");
                }
            }
        }
Exemplo n.º 2
0
        public static void VerifyAreEqual(CertificatesType certs1, CertificatesType certs2)
        {
            if (certs1 == null)
            {
                Assert.IsNull(certs2);
                return;
            }
            if (certs1.ClientCertificate == null)
            {
                Assert.IsNull(certs2.ClientCertificate);
                return;
            }
            else
            {
                Assert.AreEqual(certs1.ClientCertificate.X509FindType, certs2.ClientCertificate.X509FindType, "Certificates.Client.X509FindType");
                Assert.AreEqual(certs1.ClientCertificate.X509FindValue, certs2.ClientCertificate.X509FindValue, "Certificates.Client.X509FindValue");
                Assert.AreEqual(certs1.ClientCertificate.X509StoreName, certs2.ClientCertificate.X509StoreName, "Certificates.Client.X509StoreName");
            }

            if (certs1.ClusterCertificate == null)
            {
                Assert.IsNull(certs2.ClusterCertificate);
                return;
            }
            else
            {
                Assert.AreEqual(certs1.ClusterCertificate.X509FindType, certs2.ClusterCertificate.X509FindType, "Certificates.Cluster.X509FindType");
                Assert.AreEqual(certs1.ClusterCertificate.X509FindValue, certs2.ClusterCertificate.X509FindValue, "Certificates.Cluster.X509FindValue");
                Assert.AreEqual(certs1.ClusterCertificate.X509StoreName, certs2.ClusterCertificate.X509StoreName, "Certificates.Cluster.X509StoreName");
            }

            if (certs1.ServerCertificate == null)
            {
                Assert.IsNull(certs2.ServerCertificate);
            }
            else
            {
                Assert.AreEqual(certs1.ServerCertificate.X509FindType, certs2.ServerCertificate.X509FindType, "Certificates.Server.X509FindType");
                Assert.AreEqual(certs1.ServerCertificate.X509FindValue, certs2.ServerCertificate.X509FindValue, "Certificates.Server.X509FindValue");
                Assert.AreEqual(certs1.ServerCertificate.X509StoreName, certs2.ServerCertificate.X509StoreName, "Certificates.Server.X509StoreName");
            }
        }
Exemplo n.º 3
0
 public InfrastructureNode(FabricNodeType node, FabricEndpointsType endpoints, CertificatesType certificates)
 {
     FabricNode       = node;
     NodeEndpoints    = endpoints;
     NodeCertificates = certificates;
 }
Exemplo n.º 4
0
        private void AddFabricNodeSection(FabricNodeType fabricNode, FabricEndpointsType endpoints, ClusterManifestTypeNodeType nodeType, bool isScaleMin)
        {
            CertificatesType certificates = nodeType.Certificates;

            List <SettingsTypeSectionParameter> parameters = new List <SettingsTypeSectionParameter>();

            parameters.Add(new SettingsTypeSectionParameter()
            {
                Name = Constants.ParameterNames.InstanceName, Value = this.NodeName, MustOverride = false
            });

            if (Helpers.isIPV6AddressAndNoBracket(this.IPAddressOrFQDN))
            {
                parameters.Add(new SettingsTypeSectionParameter()
                {
                    Name = Constants.ParameterNames.IPAddressOrFQDN, Value = Helpers.AddBracketsAroundIPV6(this.IPAddressOrFQDN), MustOverride = false
                });
            }
            else
            {
                parameters.Add(new SettingsTypeSectionParameter()
                {
                    Name = Constants.ParameterNames.IPAddressOrFQDN, Value = this.IPAddressOrFQDN, MustOverride = false
                });
            }

            parameters.Add(new SettingsTypeSectionParameter()
            {
                Name = Constants.ParameterNames.WorkingDir, Value = this.DeploymentFoldersInfo.WorkFolder, MustOverride = false
            });
            parameters.Add(new SettingsTypeSectionParameter()
            {
                Name = Constants.ParameterNames.NodeVersion, Value = this.DeploymentFoldersInfo.versions.FabricInstanceVersion, MustOverride = false
            });
            parameters.Add(new SettingsTypeSectionParameter()
            {
                Name = Constants.ParameterNames.NodeType, Value = fabricNode.NodeTypeRef, MustOverride = false
            });
            parameters.Add(new SettingsTypeSectionParameter()
            {
                Name = Constants.ParameterNames.IsScaleMin, Value = isScaleMin.ToString(), MustOverride = false
            });

            //
            // Fill in any KTLLogger values from the NodeTypes
            //
            if (nodeType.KtlLoggerSettings != null)
            {
                if (nodeType.KtlLoggerSettings.SharedLogFilePath != null)
                {
                    parameters.Add(new SettingsTypeSectionParameter()
                    {
                        Name = Constants.ParameterNames.SharedLogFilePath, Value = nodeType.KtlLoggerSettings.SharedLogFilePath.Value, MustOverride = false
                    });
                }

                if (nodeType.KtlLoggerSettings.SharedLogFileId != null)
                {
                    parameters.Add(new SettingsTypeSectionParameter()
                    {
                        Name = Constants.ParameterNames.SharedLogFileId, Value = nodeType.KtlLoggerSettings.SharedLogFileId.Value, MustOverride = false
                    });
                }

                if (nodeType.KtlLoggerSettings.SharedLogFileSizeInMB != null)
                {
                    parameters.Add(new SettingsTypeSectionParameter()
                    {
                        Name = Constants.ParameterNames.SharedLogFileSizeInMB, Value = nodeType.KtlLoggerSettings.SharedLogFileSizeInMB.Value.ToString(), MustOverride = false
                    });
                }
            }

            AddEndpoints(parameters, endpoints);
            AddCertifcateInformation(parameters, certificates);
            this.Settings.Add(new SettingsTypeSection()
            {
                Name = Constants.SectionNames.FabricNode, Parameter = parameters.ToArray()
            });
        }
Exemplo n.º 5
0
        private void AddCertifcateInformation(List <SettingsTypeSectionParameter> parameters, CertificatesType certificates)
        {
            if (certificates == null)
            {
                return;
            }

            AddSingleCertificateInformation(parameters, certificates.ClientCertificate, Constants.ParameterNames.ClientCertType);
            AddSingleCertificateInformation(parameters, certificates.UserRoleClientCertificate, Constants.ParameterNames.UserRoleClientCertType);
            AddSingleCertificateInformation(parameters, certificates.ServerCertificate, Constants.ParameterNames.ServerCertType);
            AddSingleCertificateInformation(parameters, certificates.ClusterCertificate, Constants.ParameterNames.ClusterCertType);
        }