diff --git a/Directory.Build.props b/Directory.Build.props
index 44ff91ef0..775a376ef 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,6 +1,6 @@
- 4.0.7
+ 4.0.8
SimpleIdServer
SimpleIdServer
diff --git a/appveyor.yml b/appveyor.yml
index 77c7fb439..5aeec62cd 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -25,10 +25,12 @@ deploy:
secure: kSru0/Mz8HMao/s+D3eNoTjOdwYRKMESn144kSw8tWrIKZGNCWDKL5Zh57ca9LwP
on:
branch: master
+ appveyor_repo_tag: true
- provider: GitHub
auth_token:
secure: FJAvb5bFQzM98phfQ2/dLL7I10Hvof/fdHorRLuDId8PyjAxcdkfWYf5fZ0/0g+e
artifact: /.*\.zip/
on:
branch: master
+ appveyor_repo_tag: true
\ No newline at end of file
diff --git a/src/IdServer/SimpleIdServer.IdServer.Website/Shared/AddClientDialog.razor b/src/IdServer/SimpleIdServer.IdServer.Website/Shared/AddClientDialog.razor
index c5bbd4ad9..9b0f5317d 100644
--- a/src/IdServer/SimpleIdServer.IdServer.Website/Shared/AddClientDialog.razor
+++ b/src/IdServer/SimpleIdServer.IdServer.Website/Shared/AddClientDialog.razor
@@ -284,7 +284,7 @@
@((MarkupString)(@Global.SelectProofOfPossessionHelper))
- @if (highlySecuredWebsiteApplication.ProofOfPossession == MTLs.Name)
+ @if (highlySecuredWebsiteApplication.ProofOfPossession == MtlsName)
{
@((MarkupString)(@Global.SelectMtlsProofOfPossessionHelper))
@@ -297,7 +297,7 @@
}
- else if (highlySecuredWebsiteApplication.ProofOfPossession == DPoP.Name)
+ else if (highlySecuredWebsiteApplication.ProofOfPossession == DpopName)
{
@((MarkupString)(@Global.SelectDpopProofOfPossessionHelper))
@@ -352,7 +352,7 @@
@((MarkupString)(@Global.SelectProofOfPossessionHelper))
- @if (highlySecuredWebApplicationWithGrantMgtSupport.ProofOfPossession == MTLs.Name)
+ @if (highlySecuredWebApplicationWithGrantMgtSupport.ProofOfPossession == MtlsName)
{
@((MarkupString)(@Global.SelectMtlsProofOfPossessionHelper))
@@ -365,7 +365,7 @@
}
- else if (highlySecuredWebApplicationWithGrantMgtSupport.ProofOfPossession == DPoP.Name)
+ else if (highlySecuredWebApplicationWithGrantMgtSupport.ProofOfPossession == DpopName)
{
@((MarkupString)(@Global.SelectDpopProofOfPossessionHelper))
@@ -441,8 +441,8 @@
@code {
- static ProofOfPossession DPoP = new ProofOfPossession { Name = "DPoP", Description = "DPoP" };
- static ProofOfPossession MTLs = new ProofOfPossession { Name = "MTLS", Description = Global.Mtls };
+ static string DpopName = "DPoP";
+ static string MtlsName = "MTLS";
record ApplicationType
{
@@ -476,7 +476,7 @@
public string ClientSecret { get; set; } = null!;
public string RedirectionUris { get; set; } = null!;
public string SubjectName { get; set; } = null!;
- public string ProofOfPossession { get; set; } = MTLs.Name;
+ public string ProofOfPossession { get; set; } = MtlsName;
}
record HighlySecuredWebApplicationWithGrantMgtSupport
@@ -486,7 +486,7 @@
public string ClientSecret { get; set; } = null!;
public string RedirectionUris { get; set; } = null!;
public string SubjectName { get; set; } = null!;
- public string ProofOfPossession { get; set; } = MTLs.Name;
+ public string ProofOfPossession { get; set; } = MtlsName;
public string? AuthDataTypes { get; set; } = null;
}
@@ -565,8 +565,8 @@
CredentialIssuerApplication credentialIssuerApplication = new CredentialIssuerApplication();
ICollection ProofOfPossessions { get; set; } = new List
{
- DPoP,
- MTLs
+ new ProofOfPossession { Name = DpopName, Description = "DPoP" },
+ new ProofOfPossession { Name = MtlsName, Description = Global.Mtls }
};
enum ClientTemplateTypes
{
@@ -657,12 +657,12 @@
void AddHighlySecuredWebsiteApplication(HighlySecuredWebApplication websiteApplication)
{
- dispatcher.Dispatch(new AddHighlySecuredWebsiteApplicationAction { ClientId = websiteApplication.ClientIdentifier, ClientName = websiteApplication.ClientName, ClientSecret = websiteApplication.ClientSecret, IsDPoP = websiteApplication.ProofOfPossession == DPoP.Name, RedirectionUrls = websiteApplication.RedirectionUris.Split(';'), SubjectName = websiteApplication.SubjectName });
+ dispatcher.Dispatch(new AddHighlySecuredWebsiteApplicationAction { ClientId = websiteApplication.ClientIdentifier, ClientName = websiteApplication.ClientName, ClientSecret = websiteApplication.ClientSecret, IsDPoP = websiteApplication.ProofOfPossession == DpopName, RedirectionUrls = websiteApplication.RedirectionUris.Split(';'), SubjectName = websiteApplication.SubjectName });
}
void AddHighlySecuredWebsiteApplicationWithGrantMgtSupport(HighlySecuredWebApplicationWithGrantMgtSupport websiteApplication)
{
- dispatcher.Dispatch(new AddHighlySecuredWebsiteApplicationWithGrantMgtSupportAction { ClientId = websiteApplication.ClientIdentifier, ClientName = websiteApplication.ClientName, ClientSecret = websiteApplication.ClientSecret, IsDPoP = websiteApplication.ProofOfPossession == DPoP.Name, RedirectionUrls = websiteApplication.RedirectionUris.Split(';'), SubjectName = websiteApplication.SubjectName, AuthDataTypes = websiteApplication.AuthDataTypes });
+ dispatcher.Dispatch(new AddHighlySecuredWebsiteApplicationWithGrantMgtSupportAction { ClientId = websiteApplication.ClientIdentifier, ClientName = websiteApplication.ClientName, ClientSecret = websiteApplication.ClientSecret, IsDPoP = websiteApplication.ProofOfPossession == DpopName, RedirectionUrls = websiteApplication.RedirectionUris.Split(';'), SubjectName = websiteApplication.SubjectName, AuthDataTypes = websiteApplication.AuthDataTypes });
}
void AddMobileApplication(MobileApplication mobileApplication)
diff --git a/src/IdServer/SimpleIdServer.IdServer.Website/Stores/ClientStore/ClientEffects.cs b/src/IdServer/SimpleIdServer.IdServer.Website/Stores/ClientStore/ClientEffects.cs
index 5e9d03cec..897076484 100644
--- a/src/IdServer/SimpleIdServer.IdServer.Website/Stores/ClientStore/ClientEffects.cs
+++ b/src/IdServer/SimpleIdServer.IdServer.Website/Stores/ClientStore/ClientEffects.cs
@@ -12,6 +12,7 @@
using SimpleIdServer.IdServer.Saml.Idp.Extensions;
using SimpleIdServer.IdServer.Store;
using SimpleIdServer.IdServer.WsFederation;
+using System.Globalization;
using System.IdentityModel.Tokens.Jwt;
using System.Linq.Dynamic.Core;
using System.Text;
@@ -80,7 +81,7 @@ public async Task Handle(AddSpaClientAction action, IDispatcher dispatcher)
var newClientBuilder = ClientBuilder.BuildUserAgentClient(action.ClientId, Guid.NewGuid().ToString(), null, action.RedirectionUrls.ToArray())
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.SPA);
}
@@ -90,7 +91,7 @@ public async Task Handle(AddMachineClientApplicationAction action, IDispatcher d
{
var newClientBuilder = ClientBuilder.BuildApiClient(action.ClientId, action.ClientSecret, null);
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.MACHINE);
}
@@ -101,7 +102,7 @@ public async Task Handle(AddWebsiteApplicationAction action, IDispatcher dispatc
var newClientBuilder = ClientBuilder.BuildTraditionalWebsiteClient(action.ClientId, action.ClientSecret, null, action.RedirectionUrls.ToArray())
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.WEBSITE);
}
@@ -112,7 +113,7 @@ public async Task Handle(AddHighlySecuredWebsiteApplicationAction action, IDispa
var newClientBuilder = ClientBuilder.BuildTraditionalWebsiteClient(action.ClientId, action.ClientSecret, null, action.RedirectionUrls.ToArray())
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
// FAPI2.0
newClientBuilder.SetSigAuthorizationResponse(SecurityAlgorithms.EcdsaSha256);
@@ -141,7 +142,7 @@ public async Task Handle(AddHighlySecuredWebsiteApplicationWithGrantMgtSupportAc
var newClientBuilder = ClientBuilder.BuildTraditionalWebsiteClient(action.ClientId, action.ClientSecret, null, action.RedirectionUrls.ToArray())
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
// FAPI2.0
newClientBuilder.SetSigAuthorizationResponse(SecurityAlgorithms.EcdsaSha256);
@@ -176,7 +177,7 @@ public async Task Handle(AddMobileApplicationAction action, IDispatcher dispatch
var newClientBuilder = ClientBuilder.BuildMobileApplication(action.ClientId, Guid.NewGuid().ToString(), null, action.RedirectionUrls.ToArray())
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.MOBILE);
}
@@ -187,7 +188,7 @@ public async Task Handle(AddExternalDeviceApplicationAction action, IDispatcher
var newClientBuilder = ClientBuilder.BuildExternalAuthDeviceClient(action.ClientId, action.SubjectName, null)
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.EXTERNAL);
}
@@ -198,7 +199,7 @@ public async Task Handle(AddDeviceApplicationAction action, IDispatcher dispatch
var newClientBuilder = ClientBuilder.BuildDeviceClient(action.ClientId, action.ClientSecret, null)
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.DEVICE);
}
@@ -209,7 +210,7 @@ public async Task Handle(AddCredentialIssuerApplicationAction action, IDispatche
var newClientBuilder = ClientBuilder.BuildCredentialIssuer(action.ClientId, action.ClientSecret, null, action.RedirectionUrls.ToArray())
.AddScope(new Domains.Scope { Name = Constants.StandardScopes.OpenIdScope.Name }, new Domains.Scope { Name = Constants.StandardScopes.Profile.Name });
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, ClientTypes.CREDENTIAL_ISSUER);
}
@@ -219,7 +220,7 @@ public async Task Handle(AddWsFederationApplicationAction action, IDispatcher di
{
var newClientBuilder = WsClientBuilder.BuildWsFederationClient(action.ClientId, null);
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
var newClient = newClientBuilder.Build();
await CreateClient(newClient, dispatcher, WsFederationConstants.CLIENT_TYPE);
}
@@ -231,7 +232,7 @@ public async Task Handle(AddSamlSpApplicationAction action, IDispatcher dispatch
var securityKey = new X509SecurityKey(certificate, Guid.NewGuid().ToString());
var newClientBuilder = SamlSpClientBuilder.BuildSamlSpClient(action.ClientIdentifier, action.MetadataUrl, certificate, null);
if (!string.IsNullOrWhiteSpace(action.ClientName))
- newClientBuilder.SetClientName(action.ClientName);
+ newClientBuilder.SetClientName(action.ClientName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
newClientBuilder.SetUseAcsArtifact(action.UseAcs);
var newClient = newClientBuilder.Build();
var pemResult = PemConverter.ConvertFromSecurityKey(securityKey);