public static X509Certificate2 GetAcsSigningCert(string realm)
            {
                JsonMetadataDocument document = GetMetadataDocument(realm);

                if (null != document.keys && document.keys.Count > 0)
                {
                    JsonKey signingKey = document.keys[0];

                    if (null != signingKey && null != signingKey.keyValue)
                    {
                        return(new X509Certificate2(Encoding.UTF8.GetBytes(signingKey.keyValue.value)));
                    }
                }

                throw new Exception("Metadata document does not contain ACS signing certificate.");
            }
        public static string GetFromCache(this EfContextLite ef, DbSet <Cache> dbSetCache, string cacheName, Func <JsonKey, string> getter, params object[] args)
        {
            var key     = new JsonKey(args);
            var dbValue = dbSetCache.FirstOrDefault(a => a.Name == cacheName && a.Key == key.Key);

            if (dbValue != null)
            {
                return(dbValue.Value);
            }
            else
            {
                var value = getter(key);
                dbSetCache.AddOrUpdate(new Cache()
                {
                    Name = cacheName, Key = key.Key, Value = value, CreateDate = DateTimeOffset.UtcNow
                });
                ef.SaveChanges();
                return(value);
            }
        }
예제 #3
0
 // write json string using specified phase json key
 public void writeJson(JsonWriter writer, JsonKey phaseKey)
 {
     writer.WriteObjectStart();
     writer.WritePropertyName(phaseKey.elementsKeys[0]);
     writer.Write(this.name);
     writer.WritePropertyName(phaseKey.elementsKeys[1]);
     writer.Write(this.comic.bundleName);
     writer.WritePropertyName(phaseKey.elementsKeys[2]);
     writer.Write(this.comic.comicDirectory);
     writer.WritePropertyName(phaseKey.elementsKeys[3]);
     writer.Write(this.bgmAssetBundleName);
     writer.WritePropertyName(phaseKey.elementsKeys[4]);
     writer.Write(this.bgmFileName);
     writer.WritePropertyName(phaseKey.elementsjsonKey[0].objectName);
     writer.WriteArrayStart();
     foreach (Line lines in Lines)
     {
         lines.writeJson(writer, phaseKey.elementsjsonKey[0]);
     }
     writer.WriteArrayEnd();
     writer.WriteObjectEnd();
 }
예제 #4
0
        public Yandex()
        {
            try
            {
                if (!File.Exists(JsonFile))
                {
                    var key  = new JsonKey();
                    var json = JsonConvert.SerializeObject(key, Program.JsonSettings);

                    File.WriteAllText(JsonFile, json);
                }
                else
                {
                    var json = File.ReadAllText(JsonFile);
                    var key  = JsonConvert.DeserializeObject <JsonKey>(json);
                    apiKey = key.ApiKey;
                }
            }
            catch (Exception e)
            {
                _log.Error(e.Message);
            }
        }
        private static void AlignKeyValue(JsonObjectElement root, TranslationElement element)
        {
            var jsonKey = JsonKey.Create(element.Key);

            var depeestElementResult = root.Children
                                       .Select(f => f.FindDeepestElement(jsonKey.FullKey))
                                       .FirstOrDefault(f => f.IsSuccess)?.Value ?? root;

            if (depeestElementResult is JsonObjectElement objectElement)
            {
                var missingKeyParts = jsonKey.FetchMissingObjectElementKeyParts(objectElement.Key);
                objectElement = AlignObjectStructure(objectElement, missingKeyParts);
                objectElement.AddValueElement(jsonKey.ValueElementKey, element.Value);
            }
            else
            {
                var valueElement = depeestElementResult as JsonValueElement;
                if (valueElement != null)
                {
                    valueElement.ReplaceValue(element.Value);
                }
            }
        }
예제 #6
0
        // parse json using v1 method with specified version jsonkey
        public static CameraEffects parseJson_1_0(JsonData camFxJsonData, int lineIndex, JsonKey camFxKey)
        {
            CameraEffects camFx = new CameraEffects();

            Debug.Log(camFxKey.elementsKeys[0]);
            camFx.position = new Vector3(
                float.Parse(camFxJsonData[camFxKey.elementsKeys[0]][lineIndex].ToString()),
                float.Parse(camFxJsonData[camFxKey.elementsKeys[1]][lineIndex].ToString()),
                -10f
                );
            camFx._orthographicSize = float.Parse(camFxJsonData[camFxKey.elementsKeys[2]][lineIndex].ToString());
            camFx._shakeFrequency   = float.Parse(camFxJsonData[camFxKey.elementsKeys[3]][lineIndex].ToString());
            camFx.backgroundColor   = Effects.rgbColorParse(camFxJsonData[camFxKey.elementsKeys[4]][lineIndex].ToString());
            return(camFx);
        }
예제 #7
0
        private JsonMetadataDocument BuildJsonMetadataDocument()
        {
            string text        = null;
            string serviceName = OAuthConfigHelper.GetServiceName();

            if (!VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled)
            {
                text = OAuthConfigHelper.GetOrganizationRealm(OrganizationId.ForestWideOrgId);
            }
            else
            {
                text = "*";
            }
            X509Certificate2 currentSigningKey = OAuthConfigHelper.GetCurrentSigningKey();
            X509Certificate2 x509Certificate   = null;

            try
            {
                x509Certificate = OAuthConfigHelper.GetPreviousSigningKey();
            }
            catch (InvalidAuthConfigurationException arg)
            {
                this.Tracer.TraceDebug <InvalidAuthConfigurationException>((long)this.GetHashCode(), "[AuthMetadataBuilder.BuildJsonMetadataDocument] failed to get previous signing key with exception: {0}", arg);
            }
            JsonMetadataDocument jsonMetadataDocument = new JsonMetadataDocument();

            jsonMetadataDocument.id               = string.Format("_{0}", Guid.NewGuid().ToString("d"));
            jsonMetadataDocument.version          = AuthMetadataBuilder.Version;
            jsonMetadataDocument.name             = AuthMetadataBuilder.ServiceShortName;
            jsonMetadataDocument.realm            = text;
            jsonMetadataDocument.serviceName      = serviceName;
            jsonMetadataDocument.issuer           = string.Format("{0}@{1}", serviceName, text);
            jsonMetadataDocument.allowedAudiences = new string[]
            {
                jsonMetadataDocument.issuer
            };
            List <JsonKey> list = new List <JsonKey>();

            foreach (X509Certificate2 x509Certificate2 in new X509Certificate2[]
            {
                currentSigningKey,
                x509Certificate
            })
            {
                if (x509Certificate2 != null && x509Certificate2.NotAfter > DateTime.UtcNow)
                {
                    JsonKey item = new JsonKey
                    {
                        usage   = AuthMetadataConstants.KeyUsage,
                        keyinfo = new JsonKeyInfo
                        {
                            x5t = OAuthCommon.Base64UrlEncoder.EncodeBytes(x509Certificate2.GetCertHash())
                        },
                        keyvalue = new JsonKeyValue
                        {
                            type  = AuthMetadataConstants.SigningKeyType,
                            value = Convert.ToBase64String(x509Certificate2.GetRawCertData())
                        }
                    };
                    list.Add(item);
                }
            }
            jsonMetadataDocument.keys      = list.ToArray();
            jsonMetadataDocument.endpoints = new JsonEndpoint[]
            {
                new JsonEndpoint
                {
                    location = null,
                    protocol = AuthMetadataConstants.Protocol,
                    usage    = AuthMetadataConstants.MetadataEndpointUsage
                }
            };
            return(jsonMetadataDocument);
        }
예제 #8
0
 public StoryJsonKey(JsonKey storyKey, JsonKey phaseKey, JsonKey lineKey, JsonKey effectsKey, JsonKey cameraEffectskey)
 {
     this.jsonKeys["Story"]         = storyKey;
     this.jsonKeys["Phase"]         = phaseKey;
     this.jsonKeys["Line"]          = lineKey;
     this.jsonKeys["Effects"]       = effectsKey;
     this.jsonKeys["CameraEffects"] = cameraEffectskey;
     this.connectKey();
 }