Skip to content

Commit cc16bd4

Browse files
authored
Revert "Release 1.18 (#1621)"
This reverts commit 3afa08b.
1 parent 3afa08b commit cc16bd4

File tree

3 files changed

+90
-188
lines changed

3 files changed

+90
-188
lines changed

src/Microsoft.Azure.SignalR.Common/Utilities/ConnectionStringParser.cs

Lines changed: 31 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -11,81 +11,69 @@ namespace Microsoft.Azure.SignalR
1111
internal static class ConnectionStringParser
1212
{
1313
private const string AccessKeyProperty = "accesskey";
14-
1514
private const string AuthTypeProperty = "authtype";
16-
1715
private const string ClientCertProperty = "clientCert";
18-
19-
private const string ClientEndpointProperty = "clientEndpoint";
20-
16+
private const string ClientEndpointProperty = "ClientEndpoint";
2117
private const string ClientIdProperty = "clientId";
22-
2318
private const string ClientSecretProperty = "clientSecret";
24-
2519
private const string EndpointProperty = "endpoint";
26-
20+
private const string ServerEndpoint = "ServerEndpoint";
2721
private const string InvalidVersionValueFormat = "Version {0} is not supported.";
28-
2922
private const string PortProperty = "port";
30-
31-
private const string ServerEndpoint = "ServerEndpoint";
32-
3323
// For SDK 1.x, only support Azure SignalR Service 1.x
3424
private const string SupportedVersion = "1";
3525

3626
private const string TenantIdProperty = "tenantId";
37-
38-
private const string TypeAzure = "azure";
39-
40-
private const string TypeAzureAD = "aad";
41-
42-
private const string TypeAzureApp = "azure.app";
43-
44-
private const string TypeAzureMsi = "azure.msi";
45-
4627
private const string ValidVersionRegex = "^" + SupportedVersion + @"\.\d+(?:[\w-.]+)?$";
47-
4828
private const string VersionProperty = "version";
49-
50-
private static readonly string InvalidClientEndpointProperty = $"Invalid value for {ClientEndpointProperty} property, it must be a valid URI.";
51-
52-
private static readonly string InvalidEndpointProperty = $"Invalid value for {EndpointProperty} property, it must be a valid URI.";
53-
54-
private static readonly string InvalidPortValue = $"Invalid value for {PortProperty} property, it must be an positive integer between (0, 65536)";
29+
private static readonly string InvalidPortValue = $"Invalid value for {PortProperty} property.";
5530

5631
private static readonly char[] KeyValueSeparator = { '=' };
5732

5833
private static readonly string MissingAccessKeyProperty =
5934
$"{AccessKeyProperty} is required.";
6035

61-
private static readonly string MissingClientIdProperty =
62-
$"Connection string missing required properties {ClientIdProperty}.";
63-
6436
private static readonly string MissingClientSecretProperty =
6537
$"Connection string missing required properties {ClientSecretProperty} or {ClientCertProperty}.";
6638

6739
private static readonly string MissingEndpointProperty =
6840
$"Connection string missing required properties {EndpointProperty}.";
6941

70-
private static readonly string MissingTenantIdProperty =
71-
$"Connection string missing required properties {TenantIdProperty}.";
72-
7342
private static readonly char[] PropertySeparator = { ';' };
7443

7544
internal static ParsedConnectionString Parse(string connectionString)
7645
{
77-
var dict = ToDictionary(connectionString);
46+
var properties = connectionString.Split(PropertySeparator, StringSplitOptions.RemoveEmptyEntries);
47+
if (properties.Length < 2)
48+
{
49+
throw new ArgumentException(MissingEndpointProperty, nameof(connectionString));
50+
}
51+
52+
var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
53+
foreach (var property in properties)
54+
{
55+
var kvp = property.Split(KeyValueSeparator, 2);
56+
if (kvp.Length != 2) continue;
57+
58+
var key = kvp[0].Trim();
59+
if (dict.ContainsKey(key))
60+
{
61+
throw new ArgumentException($"Duplicate properties found in connection string: {key}.");
62+
}
63+
64+
dict.Add(key, kvp[1].Trim());
65+
}
7866

7967
// parse and validate endpoint.
8068
if (!dict.TryGetValue(EndpointProperty, out var endpoint))
8169
{
82-
throw new ArgumentException(MissingEndpointProperty, nameof(endpoint));
70+
throw new ArgumentException(MissingEndpointProperty, nameof(connectionString));
8371
}
8472
endpoint = endpoint.TrimEnd('/');
8573

8674
if (!TryGetEndpointUri(endpoint, out var endpointUri))
8775
{
88-
throw new ArgumentException(InvalidEndpointProperty, nameof(endpoint));
76+
throw new ArgumentException($"Endpoint property in connection string is not a valid URI: {dict[EndpointProperty]}.");
8977
}
9078
var builder = new UriBuilder(endpointUri);
9179

@@ -95,43 +83,38 @@ internal static ParsedConnectionString Parse(string connectionString)
9583
{
9684
if (!Regex.IsMatch(v, ValidVersionRegex))
9785
{
98-
throw new ArgumentException(string.Format(InvalidVersionValueFormat, v), nameof(version));
86+
throw new ArgumentException(string.Format(InvalidVersionValueFormat, v), nameof(connectionString));
9987
}
10088
version = v;
10189
}
10290

10391
// parse and validate port.
10492
if (dict.TryGetValue(PortProperty, out var s))
10593
{
106-
if (int.TryParse(s, out var port) && port > 0 && port <= 0xFFFF)
94+
if (int.TryParse(s, out var p) && p > 0 && p <= 0xFFFF)
10795
{
108-
builder.Port = port;
96+
builder.Port = p;
10997
}
11098
else
11199
{
112-
throw new ArgumentException(InvalidPortValue, nameof(port));
100+
throw new ArgumentException(InvalidPortValue, nameof(connectionString));
113101
}
114102
}
115103

116104
Uri clientEndpointUri = null;
117-
118105
// parse and validate clientEndpoint.
119106
if (dict.TryGetValue(ClientEndpointProperty, out var clientEndpoint))
120107
{
121108
if (!TryGetEndpointUri(clientEndpoint, out clientEndpointUri))
122109
{
123-
throw new ArgumentException(InvalidClientEndpointProperty, nameof(clientEndpoint));
110+
throw new ArgumentException($"{ClientEndpointProperty} property in connection string is not a valid URI: {clientEndpoint}.");
124111
}
125112
}
126113

127-
// try building accesskey.
128114
dict.TryGetValue(AuthTypeProperty, out var type);
129115
var accessKey = type?.ToLower() switch
130116
{
131-
TypeAzureAD => BuildAadAccessKey(builder.Uri, dict),
132-
TypeAzure => BuildAzureAccessKey(builder.Uri, dict),
133-
TypeAzureApp => BuildAzureAppAccessKey(builder.Uri, dict),
134-
TypeAzureMsi => BuildAzureMsiAccessKey(builder.Uri, dict),
117+
"aad" => BuildAadAccessKey(builder.Uri, dict),
135118
_ => BuildAccessKey(builder.Uri, dict),
136119
};
137120

@@ -197,70 +180,5 @@ private static AccessKey BuildAccessKey(Uri uri, Dictionary<string, string> dict
197180
}
198181
throw new ArgumentException(MissingAccessKeyProperty, AccessKeyProperty);
199182
}
200-
201-
private static AccessKey BuildAzureAccessKey(Uri uri, Dictionary<string, string> dict)
202-
{
203-
return new AadAccessKey(uri, new DefaultAzureCredential());
204-
}
205-
206-
private static AccessKey BuildAzureAppAccessKey(Uri uri, Dictionary<string, string> dict)
207-
{
208-
if (!dict.TryGetValue(ClientIdProperty, out var clientId))
209-
{
210-
throw new ArgumentException(MissingClientIdProperty, ClientIdProperty);
211-
}
212-
213-
if (!dict.TryGetValue(TenantIdProperty, out var tenantId))
214-
{
215-
throw new ArgumentException(MissingTenantIdProperty, TenantIdProperty);
216-
}
217-
218-
if (dict.TryGetValue(ClientSecretProperty, out var clientSecret))
219-
{
220-
return new AadAccessKey(uri, new ClientSecretCredential(tenantId, clientId, clientSecret));
221-
}
222-
else if (dict.TryGetValue(ClientCertProperty, out var clientCertPath))
223-
{
224-
return new AadAccessKey(uri, new ClientCertificateCredential(tenantId, clientId, clientCertPath));
225-
}
226-
throw new ArgumentException(MissingClientSecretProperty, ClientSecretProperty);
227-
}
228-
229-
private static AccessKey BuildAzureMsiAccessKey(Uri uri, Dictionary<string, string> dict)
230-
{
231-
if (dict.TryGetValue(ClientIdProperty, out var clientId))
232-
{
233-
return new AadAccessKey(uri, new ManagedIdentityCredential(clientId));
234-
}
235-
return new AadAccessKey(uri, new ManagedIdentityCredential());
236-
}
237-
238-
private static Dictionary<string, string> ToDictionary(string connectionString)
239-
{
240-
var properties = connectionString.Split(PropertySeparator, StringSplitOptions.RemoveEmptyEntries);
241-
if (properties.Length < 2)
242-
{
243-
throw new ArgumentException(MissingEndpointProperty, nameof(connectionString));
244-
}
245-
246-
var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
247-
foreach (var property in properties)
248-
{
249-
var kvp = property.Split(KeyValueSeparator, 2);
250-
if (kvp.Length != 2)
251-
{
252-
continue;
253-
}
254-
255-
var key = kvp[0].Trim();
256-
if (dict.ContainsKey(key))
257-
{
258-
throw new ArgumentException($"Duplicate properties found in connection string: {key}.");
259-
}
260-
261-
dict.Add(key, kvp[1].Trim());
262-
}
263-
return dict;
264-
}
265183
}
266184
}

src/Microsoft.Azure.SignalR/ServerConnections/ServiceConnection.Log.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ private static class Log
4646
LoggerMessage.Define<ulong?, string>(LogLevel.Warning, new EventId(10, "ReceivedMessageForNonExistentConnection"), "Received message {tracingId} for connection {TransportConnectionId} which does not exist.");
4747

4848
private static readonly Action<ILogger, string, Exception> _connectedStarting =
49-
LoggerMessage.Define<string>(LogLevel.Information, new EventId(11, "ConnectedStarting"), "Connection {TransportConnectionId} started.");
49+
LoggerMessage.Define<string>(LogLevel.Debug, new EventId(11, "ConnectedStarting"), "Connection {TransportConnectionId} started.");
5050

5151
private static readonly Action<ILogger, string, Exception> _connectedEnding =
52-
LoggerMessage.Define<string>(LogLevel.Information, new EventId(12, "ConnectedEnding"), "Connection {TransportConnectionId} ended.");
52+
LoggerMessage.Define<string>(LogLevel.Debug, new EventId(12, "ConnectedEnding"), "Connection {TransportConnectionId} ended.");
5353

5454
private static readonly Action<ILogger, string, Exception> _closeConnection =
5555
LoggerMessage.Define<string>(LogLevel.Debug, new EventId(13, "CloseConnection"), "Sending close connection message to the service for {TransportConnectionId}.");

0 commit comments

Comments
 (0)