private static ClientAuthorizationSettings GetAuthSettingsVersion1(ILeverConfiguration configuration, string client) { // Note: We can't just use configuration.Value<ClientAuthorizationSettings>($"{client}-authentication") // because we get exception "Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken". // See ServiceAuthenticationHelperTest.ShowWhyWeHaveToMakeWorkaroundInServiceAuthenticationHelper var tenantClientSetting = configuration?.Value <JObject>($"{client}-authentication"); if (tenantClientSetting == null) { var shared = configuration?.Value <JToken>("shared-client-authentications"); if (shared != null) { if (shared.Type != JTokenType.Array) { const string message = "Configuration error. The value for 'shared-client-authentications' must be an array."; Log.LogCritical(message); throw new FulcrumAssertionFailedException(message); } var sharedSettings = JsonConvert.DeserializeObject <List <ClientAuthorizationSettings> >(shared.ToString()); var setting = sharedSettings?.FirstOrDefault(x => x.UseForClients.Contains(client)); if (setting != null) { tenantClientSetting = JObject.FromObject(setting); } } } if (tenantClientSetting == null) { tenantClientSetting = JObject.FromObject(new ClientAuthorizationSettings { AuthorizationType = ClientAuthorizationSettings.AuthorizationTypeEnum.None }); } var authSettings = JsonConvert.DeserializeObject <ClientAuthorizationSettings>(tenantClientSetting.ToString()); FulcrumAssert.IsNotNull(authSettings, null, "Expected non-null auth settings"); FulcrumAssert.IsNotNull(authSettings.AuthorizationType, null, "Expected AuthorizationType"); return(authSettings); }
private static Dictionary <string, ClientAuthorizationSettings> GetAuthentications(ILeverConfiguration configuration) { var authenticationsAsJToken = configuration?.Value <JToken>("Authentications"); if (authenticationsAsJToken == null) { return(null); } var authentications = JsonConvert.DeserializeObject <List <ClientAuthorizationSettings> >(authenticationsAsJToken.ToString()); return(authentications.ToDictionary(x => x.Id, x => x)); }
public static Dictionary <string, ClientConfiguration> GetClientsConfigurations(ILeverConfiguration configuration) { var tenantClientSettingJToken = configuration?.Value <JToken>("Clients"); if (tenantClientSettingJToken == null) { return(null); } var clientConfigurations = JsonConvert.DeserializeObject <List <ClientConfiguration> >(tenantClientSettingJToken.ToString()); return(clientConfigurations.ToDictionary(x => x.Name, x => x)); }