From fc02f70181c9bd88f6d488ac89999d3378578c47 Mon Sep 17 00:00:00 2001 From: Florian Gludowatz Date: Thu, 27 Aug 2020 16:47:29 +0200 Subject: [PATCH] make serializer configurable --- src/Keycloak.Net/KeycloakClient.cs | 9 +++++++-- src/Keycloak.Net/RolesById/KeycloakClient.cs | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) mode change 100644 => 100755 src/Keycloak.Net/KeycloakClient.cs mode change 100644 => 100755 src/Keycloak.Net/RolesById/KeycloakClient.cs diff --git a/src/Keycloak.Net/KeycloakClient.cs b/src/Keycloak.Net/KeycloakClient.cs old mode 100644 new mode 100755 index fc9a7e99..5657d4c3 --- a/src/Keycloak.Net/KeycloakClient.cs +++ b/src/Keycloak.Net/KeycloakClient.cs @@ -10,7 +10,7 @@ namespace Keycloak.Net { public partial class KeycloakClient { - private static readonly ISerializer s_serializer = new NewtonsoftJsonSerializer(new JsonSerializerSettings + private ISerializer _serializer = new NewtonsoftJsonSerializer(new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore @@ -39,9 +39,14 @@ public KeycloakClient(string url, Func getToken) _getToken = getToken; } + public void SetSerializer(ISerializer serializer) + { + _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); + } + private IFlurlRequest GetBaseUrl(string authenticationRealm) => new Url(_url) .AppendPathSegment("/auth") - .ConfigureRequest(settings => settings.JsonSerializer = s_serializer) + .ConfigureRequest(settings => settings.JsonSerializer = _serializer) .WithAuthentication(_getToken, _url, authenticationRealm, _userName, _password); } } diff --git a/src/Keycloak.Net/RolesById/KeycloakClient.cs b/src/Keycloak.Net/RolesById/KeycloakClient.cs old mode 100644 new mode 100755 index a773d7f3..9c774bf2 --- a/src/Keycloak.Net/RolesById/KeycloakClient.cs +++ b/src/Keycloak.Net/RolesById/KeycloakClient.cs @@ -51,7 +51,7 @@ public async Task RemoveRolesFromCompositeAsync(string realm, string roleI { var response = await GetBaseUrl(realm) .AppendPathSegment($"/admin/realms/{realm}/roles-by-id/{roleId}/composites") - .SendJsonAsync(HttpMethod.Delete, new CapturedJsonContent(s_serializer.Serialize(roles))) + .SendJsonAsync(HttpMethod.Delete, new CapturedJsonContent(_serializer.Serialize(roles))) .ConfigureAwait(false); return response.IsSuccessStatusCode; }