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"); } } }
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"); } }
public InfrastructureNode(FabricNodeType node, FabricEndpointsType endpoints, CertificatesType certificates) { FabricNode = node; NodeEndpoints = endpoints; NodeCertificates = certificates; }
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() }); }
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); }