Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions build/dependenciesTest.props
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,4 @@
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net9.0'))">
<XunitRunnerVisualStudioVersion>3.0.0-pre.49</XunitRunnerVisualStudioVersion>
</PropertyGroup>

<!-- MicrosoftExtensionsTimeProviderTesting 8.x has a 6.0.0 target, 9.x does not. -->
<PropertyGroup Condition="'$(TargetFramework)' != 'net6.0'">
<MicrosoftExtensionsTimeProviderTestingVersion>9.0.0</MicrosoftExtensionsTimeProviderTestingVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'">
<MicrosoftExtensionsTimeProviderTestingVersion>8.10.0</MicrosoftExtensionsTimeProviderTestingVersion>
</PropertyGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ internal JsonClaimSet CreateHeaderClaimSet(ReadOnlySpan<byte> byteSpan)
break;
else if (!reader.Read())
break;
};
}

return new JsonClaimSet(claims);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ internal JsonClaimSet CreatePayloadClaimSet(ReadOnlySpan<byte> byteSpan)
break;
else if (!reader.Read())
break;
};
}

return new JsonClaimSet(claims);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ public virtual void SetParameters(NameValueCollection nameValueCollection)
foreach (string key in nameValueCollection.AllKeys)
{
SetParameter(key, nameValueCollection[key]);
};
}
}

/// <summary>
Expand Down

Large diffs are not rendered by default.

This file was deleted.

5 changes: 0 additions & 5 deletions src/Microsoft.IdentityModel.Protocols/GlobalSuppressions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,3 @@
#if NET6_0_OR_GREATER
[assembly: SuppressMessage("Globalization", "CA1307:Specify StringComparison", Justification = "Adding StringComparison.Ordinal adds a performance penalty.", Scope = "member", Target = "~M:Microsoft.IdentityModel.Protocols.AuthenticationProtocolMessage.BuildRedirectUrl~System.String")]
#endif

[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types",
Justification = "Background thread needs to never throw an unhandled exception.",
Scope = "member",
Target = "~M:Microsoft.IdentityModel.Protocols.ConfigurationManager`1.UpdateCurrentConfigurationUsingSignals")]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Microsoft.IdentityModel.Protocols.ConfigurationManager<T>.TelemetryClient -> Microsoft.IdentityModel.Telemetry.ITelemetryClient
Microsoft.IdentityModel.Protocols.ConfigurationManager<T>._onBackgroundTaskFinish -> System.Action
Microsoft.IdentityModel.Protocols.ConfigurationManager<T>.TimeProvider -> System.TimeProvider
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.HttpVersion.get -> System.Version
Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.HttpVersion.set -> void
Microsoft.IdentityModel.Protocols.ConfigurationManager<T>.ShutdownBackgroundTask() -> void
14 changes: 0 additions & 14 deletions src/Microsoft.IdentityModel.Tokens/AppContextSwitches.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,17 +70,6 @@ internal static class AppContextSwitches

internal static bool UseRfcDefinitionOfEpkAndKid => _useRfcDefinitionOfEpkAndKid ??= (AppContext.TryGetSwitch(UseRfcDefinitionOfEpkAndKidSwitch, out bool isEnabled) && isEnabled);

/// <summary>
/// Enabling this switch will cause the configuration manager to block other requests to GetConfigurationAsync if a request is already in progress.
/// The default configuration refresh behavior is if a request is already in progress, the current configuration will be returned until the ongoing request is completed on
/// a background thread.
/// </summary>
internal const string UpdateConfigAsBlockingSwitch = "Switch.Microsoft.IdentityModel.UpdateConfigAsBlocking";

private static bool? _updateConfigAsBlockingCall;

internal static bool UpdateConfigAsBlocking => _updateConfigAsBlockingCall ??= (AppContext.TryGetSwitch(UpdateConfigAsBlockingSwitch, out bool blockingCall) && blockingCall);

/// <summary>
/// Used for testing to reset all switches to its default value.
/// </summary>
Expand All @@ -97,9 +86,6 @@ internal static void ResetAllSwitches()

_useRfcDefinitionOfEpkAndKid = null;
AppContext.SetSwitch(UseRfcDefinitionOfEpkAndKidSwitch, false);

_updateConfigAsBlockingCall = null;
AppContext.SetSwitch(UpdateConfigAsBlockingSwitch, false);
}
}
}
2 changes: 1 addition & 1 deletion src/Microsoft.IdentityModel.Tokens/EventBasedLRUCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -662,7 +662,7 @@ internal void WaitForProcessing()
{
while (!_eventQueue.IsEmpty)
{
};
}
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,6 @@ static Microsoft.IdentityModel.Tokens.Utility.SerializeAsSingleCommaDelimitedStr
static Microsoft.IdentityModel.Tokens.ValidationError.GetCurrentStackFrame(string filePath = "", int lineNumber = 0, int skipFrames = 1) -> System.Diagnostics.StackFrame
static readonly Microsoft.IdentityModel.Telemetry.TelemetryDataRecorder.ConfigurationManagerCounter -> System.Diagnostics.Metrics.Counter<long>
static readonly Microsoft.IdentityModel.Telemetry.TelemetryDataRecorder.TotalDurationHistogram -> System.Diagnostics.Metrics.Histogram<long>
static readonly Microsoft.IdentityModel.Tokens.IssuerValidationSource.IssuerMatchedConfiguration -> Microsoft.IdentityModel.Tokens.IssuerValidationSource
static readonly Microsoft.IdentityModel.Tokens.IssuerValidationSource.IssuerMatchedValidationParameters -> Microsoft.IdentityModel.Tokens.IssuerValidationSource
static readonly Microsoft.IdentityModel.Tokens.IssuerValidationSource.NotValidated -> Microsoft.IdentityModel.Tokens.IssuerValidationSource
static readonly Microsoft.IdentityModel.Tokens.LoggingEventId.TokenValidationFailed -> Microsoft.Extensions.Logging.EventId
static readonly Microsoft.IdentityModel.Tokens.LoggingEventId.TokenValidationSucceeded -> Microsoft.Extensions.Logging.EventId
static readonly Microsoft.IdentityModel.Telemetry.TelemetryDataRecorder.ConfigurationManagerCounter -> System.Diagnostics.Metrics.Counter<long>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,5 @@ internal void IncrementConfigurationRefreshRequestCounter(
string metadataAddress,
string operationStatus,
Exception exception);

internal void LogBackgroundConfigurationRefreshFailure(
string metadataAddress,
Exception exception);
}
}
32 changes: 3 additions & 29 deletions src/Microsoft.IdentityModel.Tokens/Telemetry/TelemetryClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@
// Licensed under the MIT License.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using Microsoft.IdentityModel.Logging;
using Microsoft.IdentityModel.Tokens;

namespace Microsoft.IdentityModel.Telemetry
{
Expand All @@ -16,19 +14,13 @@ internal class TelemetryClient : ITelemetryClient
{
public string ClientVer = IdentityModelTelemetryUtil.ClientVer;

private KeyValuePair<string, object> _blockingTagValue = new(
TelemetryConstants.BlockingTypeTag,
AppContextSwitches.UpdateConfigAsBlocking.ToString()
);

public void IncrementConfigurationRefreshRequestCounter(string metadataAddress, string operationStatus)
{
var tagList = new TagList()
{
{ TelemetryConstants.IdentityModelVersionTag, ClientVer },
{ TelemetryConstants.MetadataAddressTag, metadataAddress },
{ TelemetryConstants.OperationStatusTag, operationStatus },
_blockingTagValue
{ TelemetryConstants.OperationStatusTag, operationStatus }
};

TelemetryDataRecorder.IncrementConfigurationRefreshRequestCounter(tagList);
Expand All @@ -41,8 +33,7 @@ public void IncrementConfigurationRefreshRequestCounter(string metadataAddress,
{ TelemetryConstants.IdentityModelVersionTag, ClientVer },
{ TelemetryConstants.MetadataAddressTag, metadataAddress },
{ TelemetryConstants.OperationStatusTag, operationStatus },
{ TelemetryConstants.ExceptionTypeTag, exception.GetType().ToString() },
_blockingTagValue
{ TelemetryConstants.ExceptionTypeTag, exception.GetType().ToString() }
};

TelemetryDataRecorder.IncrementConfigurationRefreshRequestCounter(tagList);
Expand All @@ -54,7 +45,6 @@ public void LogConfigurationRetrievalDuration(string metadataAddress, TimeSpan o
{
{ TelemetryConstants.IdentityModelVersionTag, ClientVer },
{ TelemetryConstants.MetadataAddressTag, metadataAddress },
_blockingTagValue
};

long durationInMilliseconds = (long)operationDuration.TotalMilliseconds;
Expand All @@ -67,27 +57,11 @@ public void LogConfigurationRetrievalDuration(string metadataAddress, TimeSpan o
{
{ TelemetryConstants.IdentityModelVersionTag, ClientVer },
{ TelemetryConstants.MetadataAddressTag, metadataAddress },
{ TelemetryConstants.ExceptionTypeTag, exception.GetType().ToString() },
_blockingTagValue
{ TelemetryConstants.ExceptionTypeTag, exception.GetType().ToString() }
};

long durationInMilliseconds = (long)operationDuration.TotalMilliseconds;
TelemetryDataRecorder.RecordConfigurationRetrievalDurationHistogram(durationInMilliseconds, tagList);
}

public void LogBackgroundConfigurationRefreshFailure(
string metadataAddress,
Exception exception)
{
var tagList = new TagList()
{
{ TelemetryConstants.IdentityModelVersionTag, ClientVer },
{ TelemetryConstants.MetadataAddressTag, metadataAddress },
{ TelemetryConstants.ExceptionTypeTag, exception.GetType().ToString() },
_blockingTagValue
};

TelemetryDataRecorder.IncrementBackgroundConfigurationRefreshFailureCounter(tagList);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,6 @@ internal static class TelemetryConstants
/// </summary>
public const string ExceptionTypeTag = "ExceptionType";

/// <summary>
/// Telemetry tag indicating if the update was blocking.
/// </summary>
public const string BlockingTypeTag = "Blocking";

public static class Protocols
{
// Configuration manager refresh statuses
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,9 @@ internal class TelemetryDataRecorder
/// <summary>
/// Counter to capture configuration refresh requests to ConfigurationManager.
/// </summary>
internal static readonly Counter<long> ConfigurationManagerCounter = IdentityModelMeter.CreateCounter<long>(IdentityModelConfigurationManagerCounterName, description: IdentityModelConfigurationManagerCounterDescription);
internal const string IdentityModelConfigurationManagerCounterName = "IdentityModelConfigurationManager";
internal const string IdentityModelConfigurationManagerCounterDescription = "Counter capturing configuration manager operations.";

/// <summary>
/// Counter to capture background refresh failures in the ConfigurationManager.
/// </summary>
internal static readonly Counter<long> BackgroundConfigurationRefreshFailureCounter = IdentityModelMeter.CreateCounter<long>(BackgroundConfigurationRefreshFailureCounterName, description: BackgroundConfigurationRefreshFailureCounterDescription);
internal const string BackgroundConfigurationRefreshFailureCounterName = "IdentityModelConfigurationManagerBackgroundRefreshFailure";
internal const string BackgroundConfigurationRefreshFailureCounterDescription = "Counter capturing configuration manager background refresh failures.";
internal static readonly Counter<long> ConfigurationManagerCounter = IdentityModelMeter.CreateCounter<long>(IdentityModelConfigurationManagerCounterName, description: IdentityModelConfigurationManagerCounterDescription);

/// <summary>
/// Histogram to capture total duration of configuration retrieval by ConfigurationManager in milliseconds.
Expand All @@ -54,10 +47,5 @@ internal static void IncrementConfigurationRefreshRequestCounter(in TagList tagL
{
ConfigurationManagerCounter.Add(1, tagList);
}

internal static void IncrementBackgroundConfigurationRefreshFailureCounter(in TagList tagList)
{
BackgroundConfigurationRefreshFailureCounter.Add(1, tagList);
}
}
}
Loading
Loading