Skip to content

Commit

Permalink
Removing the Container and ValueOrReference from the public API of Cr…
Browse files Browse the repository at this point in the history
…edentialDescription (#151)

* Removing the Container and ValueOrReference from the public API of CredentialDescription. They were there for compat with IdWeb 1.x and part of the technical debt

* Addressing PR feedback
  • Loading branch information
jmprieur authored Jan 23, 2025
1 parent d2d5ce0 commit 735aaad
Show file tree
Hide file tree
Showing 13 changed files with 168 additions and 20 deletions.
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<!-- This should be passed from the VSTS build -->
<MicrosoftIdentityAbstractionsVersion Condition="'$(MicrosoftIdentityAbstractionsVersion)' == ''">7.2.1</MicrosoftIdentityAbstractionsVersion>
<MicrosoftIdentityAbstractionsVersion Condition="'$(MicrosoftIdentityAbstractionsVersion)' == ''">8.0.0</MicrosoftIdentityAbstractionsVersion>
<!-- This will generate AssemblyVersion, AssemblyFileVersion and AssemblyInformationVersion -->
<Version>$(MicrosoftIdentityAbstractionsVersion)</Version>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using System.Security.Cryptography.X509Certificates;

namespace Microsoft.Identity.Abstractions
Expand All @@ -15,6 +16,45 @@ namespace Microsoft.Identity.Abstractions
/// </summary>
public class CredentialDescription
{
/// <summary>
/// Default constructor.
/// </summary>
public CredentialDescription()
{

}

/// <summary>
/// Copy constructor for <see cref="CredentialDescription"/>
/// </summary>
/// <param name="other">CredentialDescription to copy.</param>
public CredentialDescription(CredentialDescription other)
{
#if NET8_0_OR_GREATER
ArgumentNullException.ThrowIfNull(other);
#else
if (other == null)
throw new ArgumentNullException(nameof(other));
#endif
SourceType = other.SourceType;
KeyVaultUrl = other.KeyVaultUrl;
KeyVaultCertificateName = other.KeyVaultCertificateName;
CertificateStorePath = other.CertificateStorePath;
CertificateDistinguishedName = other.CertificateDistinguishedName;
CertificateThumbprint = other.CertificateThumbprint;
CertificateDiskPath = other.CertificateDiskPath;
CertificatePassword = other.CertificatePassword;
Base64EncodedValue = other.Base64EncodedValue;
ClientSecret = other.ClientSecret;
ManagedIdentityClientId = other.ManagedIdentityClientId;
SignedAssertionFileDiskPath = other.SignedAssertionFileDiskPath;
DecryptKeysAuthenticationOptions = other.DecryptKeysAuthenticationOptions;
Certificate = other.Certificate;
CachedValue = other.CachedValue;
Skip = other.Skip;
TokenExchangeUrl = other.TokenExchangeUrl;
}

private string? _cachedId;

/// <summary>
Expand Down Expand Up @@ -54,7 +94,7 @@ public string Id
/// this value is the path to the credential in the cert store, for instance <c>CurrentUser/My</c>.</item>
/// </list>
/// </remarks>
public string? Container
internal string? Container
{
get
{
Expand Down Expand Up @@ -334,7 +374,7 @@ public string? Container
/// this value is the thumbprint.</item>
/// </list>
/// </remarks>
public string? ReferenceOrValue
internal string? ReferenceOrValue
{
get
{
Expand Down
114 changes: 113 additions & 1 deletion src/Microsoft.Identity.Abstractions/CompatibilitySuppressions.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_Container</Target>
<Left>lib/net462/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net462/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_ReferenceOrValue</Target>
<Left>lib/net462/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net462/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_Container(System.String)</Target>
<Left>lib/net462/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net462/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_ReferenceOrValue(System.String)</Target>
<Left>lib/net462/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net462/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_Container</Target>
<Left>lib/net8.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net8.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_ReferenceOrValue</Target>
<Left>lib/net8.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net8.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_Container(System.String)</Target>
<Left>lib/net8.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net8.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_ReferenceOrValue(System.String)</Target>
<Left>lib/net8.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/net8.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_Container</Target>
<Left>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_ReferenceOrValue</Target>
<Left>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_Container(System.String)</Target>
<Left>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_ReferenceOrValue(System.String)</Target>
<Left>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.0/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_Container</Target>
<Left>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.get_ReferenceOrValue</Target>
<Left>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_Container(System.String)</Target>
<Left>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.CredentialDescription.set_ReferenceOrValue(System.String)</Target>
<Left>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Left>
<Right>lib/netstandard2.1/Microsoft.Identity.Abstractions.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>M:Microsoft.Identity.Abstractions.IDownstreamApi.PatchForAppAsync``1(System.String,``0,System.Action{Microsoft.Identity.Abstractions.DownstreamApiOptionsReadOnlyHttpMethod},System.Threading.CancellationToken)</Target>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("Microsoft.Identity.Abstractions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001002D96616729B54F6D013D71559A017F50AA4861487226C523959D1579B93F3FDF71C08B980FD3130062B03D3DE115C4B84E7AC46AEF5E192A40E7457D5F3A08F66CEAB71143807F2C3CB0DA5E23B38F0559769978406F6E5D30CEADD7985FC73A5A609A8B74A1DF0A29399074A003A226C943D480FEC96DBEC7106A87896539AD")]
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.get
Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Container.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.Container.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription() -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialType.get -> Microsoft.Identity.Abstractions.CredentialType
Microsoft.Identity.Abstractions.CredentialDescription.DecryptKeysAuthenticationOptions.get -> Microsoft.Identity.Abstractions.AuthorizationHeaderProviderOptions?
Expand All @@ -91,8 +89,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Skip.get -> bool
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#nullable enable
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription(Microsoft.Identity.Abstractions.CredentialDescription! other) -> void
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.get
Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Container.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.Container.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription() -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialType.get -> Microsoft.Identity.Abstractions.CredentialType
Microsoft.Identity.Abstractions.CredentialDescription.DecryptKeysAuthenticationOptions.get -> Microsoft.Identity.Abstractions.AuthorizationHeaderProviderOptions?
Expand All @@ -91,8 +89,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Skip.get -> bool
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#nullable enable
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription(Microsoft.Identity.Abstractions.CredentialDescription! other) -> void
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.get
Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Container.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.Container.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription() -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialType.get -> Microsoft.Identity.Abstractions.CredentialType
Microsoft.Identity.Abstractions.CredentialDescription.DecryptKeysAuthenticationOptions.get -> Microsoft.Identity.Abstractions.AuthorizationHeaderProviderOptions?
Expand All @@ -91,8 +89,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Skip.get -> bool
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#nullable enable
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription(Microsoft.Identity.Abstractions.CredentialDescription! other) -> void
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.get
Microsoft.Identity.Abstractions.CredentialDescription.CertificateThumbprint.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ClientSecret.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Container.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.Container.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription() -> void
Microsoft.Identity.Abstractions.CredentialDescription.CredentialType.get -> Microsoft.Identity.Abstractions.CredentialType
Microsoft.Identity.Abstractions.CredentialDescription.DecryptKeysAuthenticationOptions.get -> Microsoft.Identity.Abstractions.AuthorizationHeaderProviderOptions?
Expand All @@ -91,8 +89,6 @@ Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.KeyVaultUrl.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ManagedIdentityClientId.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.ReferenceOrValue.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.get -> string?
Microsoft.Identity.Abstractions.CredentialDescription.SignedAssertionFileDiskPath.set -> void
Microsoft.Identity.Abstractions.CredentialDescription.Skip.get -> bool
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#nullable enable
Microsoft.Identity.Abstractions.CredentialDescription.CredentialDescription(Microsoft.Identity.Abstractions.CredentialDescription! other) -> void
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<LangVersion>12</LangVersion>
<SignAssembly>True</SignAssembly>
<AssemblyOriginatorKeyFile>../../build/MSAL.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>

<ItemGroup>
Expand Down

0 comments on commit 735aaad

Please sign in to comment.