private static byte[] addTokenToPolicy(string policy, string token)
{
var json = JsonMapper.ToObject(new JsonReader(policy));
var found = false;
var conditions = json["conditions"];
if (conditions != null && conditions.IsArray)
{
for (int i = 0; i < conditions.Count; i++)
{
JsonData cond = conditions[i];
if (cond.IsObject && cond[S3Constants.PostFormDataSecurityToken] != null)
{
cond[S3Constants.PostFormDataSecurityToken] = token;
found = true;
}
}
if (!found)
{
var tokenCondition = new JsonData();
tokenCondition.SetJsonType(JsonType.Object);
tokenCondition[S3Constants.PostFormDataSecurityToken] = token;
conditions.Add(tokenCondition);
}
}
return Encoding.UTF8.GetBytes(JsonMapper.ToJson(json).Trim());
}