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()