diff --git a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs index 14802cd7..42a9520e 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionService.cs @@ -1428,6 +1428,10 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection switch (connectionDetails.SecureEnclaves.ToUpper()) { case "ENABLED": + if (string.IsNullOrEmpty(connectionDetails.EnclaveAttestationProtocol)) + { + throw new ArgumentException(SR.ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves); + } break; case "DISABLED": break; diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs index 9ee86910..5e4eef0f 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs @@ -45,6 +45,14 @@ namespace Microsoft.SqlTools.ServiceLayer } } + public static string ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves + { + get + { + return Keys.GetString(Keys.ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves); + } + } + public static string ConnectionServiceConnStringMissingAttestationUrlWithAttestationProtocol { get @@ -10190,6 +10198,9 @@ namespace Microsoft.SqlTools.ServiceLayer public const string ConnectionServiceConnStringInvalidEnclaveAttestationProtocol = "ConnectionServiceConnStringInvalidEnclaveAttestationProtocol"; + public const string ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves = "ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves"; + + public const string ConnectionServiceConnStringMissingAttestationUrlWithAttestationProtocol = "ConnectionServiceConnStringMissingAttestationUrlWithAttestationProtocol"; diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx index 7e90bc48..e5e6653f 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx @@ -146,7 +146,7 @@ Parameters: 0 - columnEncryptionSetting (string) - Invalid value '{0}' for SecureEnclaves. Valid values are 'Enabled' and 'Disabled'. + Invalid value '{0}' for Secure enclaves. Valid values are 'Enabled' and 'Disabled'. . Parameters: 0 - secureEnclaves (string) @@ -156,20 +156,24 @@ Parameters: 0 - encrypt (string) - Invalid value '{0}' for EnclaveAttestationProtocol. Valid values are 'AAS', 'HGS' and 'None'. + Invalid value '{0}' for Attestation protocol. Valid values are 'AAS', 'HGS' and 'None'. . Parameters: 0 - enclaveAttestationProtocol (string) + + Attestation protocol cannot be empty with Secure enclaves enabled. + + - Attestation URL cannot be empty with the selected value of Attestation Protocol. + Attestation URL cannot be empty with the selected value of Attestation protocol. - The Attestation Protocol and Enclave Attestation URL requires Always Encrypted with Secure Enclaves to be set to Enabled. + The Attestation protocol and Attestation URL requires Always Encrypted with Secure enclaves to be set to Enabled. - The Enclave Attestation URL must not be specified with Attestation Protocol 'None'. Either set appropriate Attestation Protocol or remove Attestation URL from connection properties. + The Attestation URL must not be specified with Attestation protocol 'None'. Either set appropriate Attestation protocol or remove Attestation URL from connection properties. diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings index 3e8915f6..c2875174 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings @@ -35,17 +35,19 @@ ConnectionServiceConnStringInvalidAuthType(string authType) = Invalid value '{0} ConnectionServiceConnStringInvalidColumnEncryptionSetting(string columnEncryptionSetting) = Invalid value '{0}' for ComlumEncryption. Valid values are 'Enabled' and 'Disabled'. -ConnectionServiceConnStringInvalidSecureEnclaves(string secureEnclaves) = Invalid value '{0}' for SecureEnclaves. Valid values are 'Enabled' and 'Disabled'. +ConnectionServiceConnStringInvalidSecureEnclaves(string secureEnclaves) = Invalid value '{0}' for Secure enclaves. Valid values are 'Enabled' and 'Disabled'. ConnectionServiceConnStringInvalidEncryptOption(string encrypt) = Invalid value '{0}' for Encrypt. Valid values are 'Optional', 'Mandatory', 'Strict', 'True', 'False', 'Yes' and 'No'. -ConnectionServiceConnStringInvalidEnclaveAttestationProtocol(string enclaveAttestationProtocol) = Invalid value '{0}' for EnclaveAttestationProtocol. Valid values are 'AAS', 'HGS' and 'None'. +ConnectionServiceConnStringInvalidEnclaveAttestationProtocol(string enclaveAttestationProtocol) = Invalid value '{0}' for Attestation protocol. Valid values are 'AAS', 'HGS' and 'None'. -ConnectionServiceConnStringMissingAttestationUrlWithAttestationProtocol = Attestation URL cannot be empty with the selected value of Attestation Protocol. +ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves = Attestation protocol cannot be empty with Secure enclaves enabled. -ConnectionServiceConnStringInvalidAlwaysEncryptedOptionCombination = The Attestation Protocol and Enclave Attestation URL requires Always Encrypted with Secure Enclaves to be set to Enabled. +ConnectionServiceConnStringMissingAttestationUrlWithAttestationProtocol = Attestation URL cannot be empty with the selected value of Attestation protocol. -ConnectionServiceConnStringInvalidAttestationProtocolNoneWithUrl = The Enclave Attestation URL must not be specified with Attestation Protocol 'None'. Either set appropriate Attestation Protocol or remove Attestation URL from connection properties. +ConnectionServiceConnStringInvalidAlwaysEncryptedOptionCombination = The Attestation protocol and Attestation URL requires Always Encrypted with Secure enclaves to be set to Enabled. + +ConnectionServiceConnStringInvalidAttestationProtocolNoneWithUrl = The Attestation URL must not be specified with Attestation protocol 'None'. Either set appropriate Attestation protocol or remove Attestation URL from connection properties. ConnectionServiceConnStringInvalidIntent(string intent) = Invalid value '{0}' for ApplicationIntent. Valid values are 'ReadWrite' and 'ReadOnly'. diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf index 4a53a51e..3ed72691 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf @@ -2042,14 +2042,14 @@ Parameters: 0 - encrypt (string) - Invalid value '{0}' for EnclaveAttestationProtocol. Valid values are 'AAS', 'HGS' and 'None'. - Invalid value '{0}' for EnclaveAttestationProtocol. Valid values are 'AAS', 'HGS' and 'None'. + Invalid value '{0}' for Attestation protocol. Valid values are 'AAS', 'HGS' and 'None'. + Invalid value '{0}' for Attestation protocol. Valid values are 'AAS', 'HGS' and 'None'. . Parameters: 0 - enclaveAttestationProtocol (string) - The Attestation Protocol and Enclave Attestation URL requires Always Encrypted with Secure Enclaves to be set to Enabled. - The Attestation Protocol and Enclave Attestation URL requires Always Encrypted with Secure Enclaves to be set to Enabled. + The Attestation protocol and Attestation URL requires Always Encrypted with Secure enclaves to be set to Enabled. + The Attestation protocol and Attestation URL requires Always Encrypted with Secure enclaves to be set to Enabled. @@ -6551,19 +6551,19 @@ The Query Processor estimates that implementing the following index could improv - Attestation URL cannot be empty with the selected value of Attestation Protocol. - Attestation URL cannot be empty with the selected value of Attestation Protocol. + Attestation URL cannot be empty with the selected value of Attestation protocol. + Attestation URL cannot be empty with the selected value of Attestation protocol. - Invalid value '{0}' for SecureEnclaves. Valid values are 'Enabled' and 'Disabled'. - Invalid value '{0}' for SecureEnclaves. Valid values are 'Enabled' and 'Disabled'. + Invalid value '{0}' for Secure enclaves. Valid values are 'Enabled' and 'Disabled'. + Invalid value '{0}' for Secure enclaves. Valid values are 'Enabled' and 'Disabled'. . Parameters: 0 - secureEnclaves (string) - The Enclave Attestation URL must not be specified with Attestation Protocol 'None'. Either set appropriate Attestation Protocol or remove Attestation URL from connection properties. - The Enclave Attestation URL must not be specified with Attestation Protocol 'None'. Either set appropriate Attestation Protocol or remove Attestation URL from connection properties. + The Attestation URL must not be specified with Attestation protocol 'None'. Either set appropriate Attestation protocol or remove Attestation URL from connection properties. + The Attestation URL must not be specified with Attestation protocol 'None'. Either set appropriate Attestation protocol or remove Attestation URL from connection properties. @@ -6582,6 +6582,11 @@ The Query Processor estimates that implementing the following index could improv . Parameters: 0 - urn (string) + + Attestation protocol cannot be empty with Secure enclaves enabled. + Attestation protocol cannot be empty with Secure enclaves enabled. + + \ No newline at end of file diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/SrTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/SrTests.cs index 585653a4..2fc1d0e4 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/SrTests.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/SrTests.cs @@ -37,6 +37,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Utility Assert.NotNull(ServiceLayerSr.ConnectionServiceConnectionCanceled); Assert.NotNull(ServiceLayerSr.ConnectionServiceConnStringMissingAttestationUrlWithAttestationProtocol); Assert.NotNull(ServiceLayerSr.ConnectionServiceConnStringInvalidAttestationProtocolNoneWithUrl); + Assert.NotNull(ServiceLayerSr.ConnectionServiceConnStringMissingAttestationProtocolWithSecureEnclaves); Assert.NotNull(ServiceLayerSr.ConnectionServiceConnStringInvalidEnclaveAttestationProtocol("")); Assert.NotNull(ServiceLayerSr.ConnectionServiceConnStringInvalidColumnEncryptionSetting("")); Assert.NotNull(ServiceLayerSr.ConnectionServiceConnStringInvalidSecureEnclaves(""));