CSharpRTMP.Core.Protocols.Rtmp.BaseRTMPAppProtocolHandler.ParseAuthenticationNode C# (CSharp) Method

ParseAuthenticationNode() public method

public ParseAuthenticationNode ( Variant node, Variant result ) : bool
node Variant
result Variant
return bool
        public override bool ParseAuthenticationNode(Variant node, Variant result)
        {
            //1. Validation
            if (node[Defines.CONF_APPLICATION_AUTH_TYPE] != Defines.CONF_APPLICATION_AUTH_TYPE_ADOBE)
            {
                Logger.FATAL("Invalid authentication type");
                return false;
            }
            if (node[Defines.CONF_APPLICATION_AUTH_ENCODER_AGENTS] == null || node[Defines.CONF_APPLICATION_AUTH_ENCODER_AGENTS].Count == 0)
            {
                Logger.FATAL("Invalid users file path");
                return false;
            }
            //2. Users file validation
            string usersFile = node[Defines.CONF_APPLICATION_AUTH_USERS_FILE];
            if (!usersFile.StartsWith("/") && !usersFile.StartsWith("."))
            {
                usersFile = Configuration[Defines.CONF_APPLICATION_DIRECTORY] + usersFile;
            }
     
            if (File.Exists(usersFile))
            {
                Logger.FATAL("Invalid authentication configuration. Missing users file:{0}", usersFile);
                return false;
            }
            //3. Build the result
            result[Defines.CONF_APPLICATION_AUTH_TYPE] = Defines.CONF_APPLICATION_AUTH_TYPE_ADOBE;
            result[Defines.CONF_APPLICATION_AUTH_USERS_FILE] = usersFile;
            foreach (var item in node[Defines.CONF_APPLICATION_AUTH_ENCODER_AGENTS].Children)
            {
                if (string.IsNullOrEmpty(item.Value))
                {
                    Logger.FATAL("Invalid encoder agent encountered");
                    return false;
                }
                result[Defines.CONF_APPLICATION_AUTH_ENCODER_AGENTS][item.Key] = item.Value;
            }
            result["adobeAuthSalt"] = _adobeAuthSalt = Utils.GenerateRandomString(32);
            _adobeAuthSettings = result;
            _authMethod = Defines.CONF_APPLICATION_AUTH_TYPE_ADOBE;
            var modificationDate = new FileInfo(usersFile).LastWriteTime;
            if (modificationDate != _lastUsersFileUpdate)
            {
                _users.SetValue();
                _users = Variant.DeserializeFromJsonFile(usersFile)["users"];
                _lastUsersFileUpdate = modificationDate;
            }
            return true;
        }
        private void GenerateMetaFiles()