Skip to content

Commit a891876

Browse files
authored
fixed token availablity (#21326)
1 parent 66ff91a commit a891876

File tree

37 files changed

+325
-111
lines changed

37 files changed

+325
-111
lines changed

modules/openapi-generator/src/main/resources/csharp/libraries/generichost/RateLimitProvider`1.mustache

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,25 @@ namespace {{packageName}}.{{clientPackage}}
6363
{{/lambda.paste}}
6464
{{/hasApiKeyMethods}}
6565

66-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
67-
for (int i = 0; i < _tokens.Length; i++)
68-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
66+
foreach (var availableToken in AvailableTokens)
67+
foreach(TTokenBase token in _tokens)
68+
{
69+
{{#hasApiKeyMethods}}
70+
if (token is ApiKeyToken apiKeyToken)
71+
{
72+
if (ClientUtils.ApiKeyHeaderToString(apiKeyToken.Header) == availableToken.Key)
73+
{
74+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
75+
}
76+
} else
77+
{
78+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
79+
}
80+
{{/hasApiKeyMethods}}
81+
{{^hasApiKeyMethods}}
82+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
83+
{{/hasApiKeyMethods}}
84+
}
6985
}
7086

7187
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}})

samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
4040

4141
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4242

43-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
44-
for (int i = 0; i < _tokens.Length; i++)
45-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
43+
foreach (var availableToken in AvailableTokens)
44+
foreach(TTokenBase token in _tokens)
45+
{
46+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
47+
}
4648
}
4749

4850
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
4040

4141
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4242

43-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
44-
for (int i = 0; i < _tokens.Length; i++)
45-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
43+
foreach (var availableToken in AvailableTokens)
44+
foreach(TTokenBase token in _tokens)
45+
{
46+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
47+
}
4648
}
4749

4850
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,20 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
5858
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
5959
}
6060

61-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
62-
for (int i = 0; i < _tokens.Length; i++)
63-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
61+
foreach (var availableToken in AvailableTokens)
62+
foreach(TTokenBase token in _tokens)
63+
{
64+
if (token is ApiKeyToken apiKeyToken)
65+
{
66+
if (ClientUtils.ApiKeyHeaderToString(apiKeyToken.Header) == availableToken.Key)
67+
{
68+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
69+
}
70+
} else
71+
{
72+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
73+
}
74+
}
6475
}
6576

6677
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/AnyOfNoCompare/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,20 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
5555
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
5656
}
5757

58-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
59-
for (int i = 0; i < _tokens.Length; i++)
60-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
58+
foreach (var availableToken in AvailableTokens)
59+
foreach(TTokenBase token in _tokens)
60+
{
61+
if (token is ApiKeyToken apiKeyToken)
62+
{
63+
if (ClientUtils.ApiKeyHeaderToString(apiKeyToken.Header) == availableToken.Key)
64+
{
65+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
66+
}
67+
} else
68+
{
69+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
70+
}
71+
}
6172
}
6273

6374
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/OneOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,20 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
5555
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
5656
}
5757

58-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
59-
for (int i = 0; i < _tokens.Length; i++)
60-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
58+
foreach (var availableToken in AvailableTokens)
59+
foreach(TTokenBase token in _tokens)
60+
{
61+
if (token is ApiKeyToken apiKeyToken)
62+
{
63+
if (ClientUtils.ApiKeyHeaderToString(apiKeyToken.Header) == availableToken.Key)
64+
{
65+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
66+
}
67+
} else
68+
{
69+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
70+
}
71+
}
6172
}
6273

6374
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.7/UseDateTimeForDate/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.8/AllOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.8/AnyOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.8/AnyOfNoCompare/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,20 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
5555
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
5656
}
5757

58-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
59-
for (int i = 0; i < _tokens.Length; i++)
60-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
58+
foreach (var availableToken in AvailableTokens)
59+
foreach(TTokenBase token in _tokens)
60+
{
61+
if (token is ApiKeyToken apiKeyToken)
62+
{
63+
if (ClientUtils.ApiKeyHeaderToString(apiKeyToken.Header) == availableToken.Key)
64+
{
65+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
66+
}
67+
} else
68+
{
69+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
70+
}
71+
}
6172
}
6273

6374
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.8/OneOf/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
3838

3939
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
4040

41-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
42-
for (int i = 0; i < _tokens.Length; i++)
43-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
41+
foreach (var availableToken in AvailableTokens)
42+
foreach(TTokenBase token in _tokens)
43+
{
44+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
45+
}
4446
}
4547

4648
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Client/RateLimitProvider`1.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,20 @@ public RateLimitProvider(TokenContainer<TTokenBase> container) : base(container.
5555
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
5656
}
5757

58-
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
59-
for (int i = 0; i < _tokens.Length; i++)
60-
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
58+
foreach (var availableToken in AvailableTokens)
59+
foreach(TTokenBase token in _tokens)
60+
{
61+
if (token is ApiKeyToken apiKeyToken)
62+
{
63+
if (ClientUtils.ApiKeyHeaderToString(apiKeyToken.Header) == availableToken.Key)
64+
{
65+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
66+
}
67+
} else
68+
{
69+
token.TokenBecameAvailable += ((sender) => availableToken.Value.Writer.TryWrite((TTokenBase)sender));
70+
}
71+
}
6172
}
6273

6374
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)

0 commit comments

Comments
 (0)