/// <summary> /// Add Claims to body parameter for POST request. /// </summary> /// <param name="oAuth2Client"><see cref="OAuth2Client"/> object for Token request.</param> /// <param name="requestParams"><see cref="AuthenticationRequestParameters"/> containing request parameters.</param> internal static void AddKerberosTicketClaim( OAuth2Client oAuth2Client, AuthenticationRequestParameters requestParams) { string kerberosClaim = GetKerberosTicketClaim( requestParams.RequestContext.ServiceBundle.Config.KerberosServicePrincipalName, requestParams.RequestContext.ServiceBundle.Config.TicketContainer); if (string.IsNullOrEmpty(kerberosClaim)) { oAuth2Client.AddBodyParameter(OAuth2Parameter.Claims, requestParams.ClaimsAndClientCapabilities); } else if (string.IsNullOrEmpty(requestParams.ClaimsAndClientCapabilities)) { oAuth2Client.AddBodyParameter(OAuth2Parameter.Claims, kerberosClaim); } else { JObject existingClaims = JObject.Parse(requestParams.ClaimsAndClientCapabilities); JObject mergedClaims = ClaimsHelper.MergeClaimsIntoCapabilityJson(kerberosClaim, existingClaims); oAuth2Client.AddBodyParameter(OAuth2Parameter.Claims, mergedClaims.ToString(Formatting.None)); } }