Ejemplo n.º 1
0
 public bool Execute(string[] paramsList)
 {
     if (CenterServerMgr.Successed)
     {
         Console.WriteLine("系统正在运行中,不能重复初始化协议包处理对象列表!");
         return(false);
     }
     PackageHandlers.SearchPackageHandler(Assembly.GetAssembly(typeof(CSServer)));
     Console.WriteLine("协议包处理对象列表初始化!\r\n");
     return(true);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Gets the handler with the given [class] name.
 /// </summary>
 /// <exception cref="NotSupportedException"/>
 public PackageHandlerBase GetHandlerByName(string name)
 {
     if (PackageHandlers.TryGetValue(name, out var handler))
     {
         return(handler);
     }
     else
     {
         throw new NotSupportedException("A package handler with the name \"" + name + "\" was not registered.");
     }
 }
        private async Task <SecurityPolicyResult> EvaluatePackagePoliciesInternalAsync(
            SecurityPolicyAction action,
            Package package,
            User sourceAccount,
            User targetAccount,
            HttpContextBase httpContext,
            IEnumerable <UserSecurityPolicy> policies = null,
            bool auditSuccess = true)
        {
            policies = policies ?? targetAccount.SecurityPolicies;

            var relevantHandlers = PackageHandlers.Where(h => h.Action == action).ToList();

            var packagePoliciesResult = SecurityPolicyResult.SuccessResult;

            foreach (var handler in relevantHandlers)
            {
                var foundPolicies = policies.Where(p => p.Name.Equals(handler.Name, StringComparison.OrdinalIgnoreCase)).ToList();

                if (foundPolicies.Any())
                {
                    var context = new PackageSecurityPolicyEvaluationContext(
                        _userService.Value,
                        _packageOwnershipManagementService.Value,
                        _telemetryService,
                        foundPolicies,
                        package,
                        sourceAccount,
                        targetAccount,
                        httpContext);

                    var result = await handler.EvaluateAsync(context);

                    if (auditSuccess || !result.Success)
                    {
                        await Auditing.SaveAuditRecordAsync(new UserSecurityPolicyAuditRecord(
                                                                context.TargetAccount.Username, GetAuditAction(action), foundPolicies, result.Success, result.ErrorMessage));
                    }

                    if (!result.Success)
                    {
                        Diagnostics.Information(
                            $"Security policy from subscription '{foundPolicies.First().Subscription}' - '{handler.Name}' failed with error '{result.ErrorMessage}'.");

                        return(result);
                    }

                    if (result.HasWarnings)
                    {
                        if (packagePoliciesResult == SecurityPolicyResult.SuccessResult)
                        {
                            packagePoliciesResult = result;
                        }
                        else
                        {
                            packagePoliciesResult.AddWarnings(result.WarningMessages);
                        }
                    }
                }
            }

            return(packagePoliciesResult);
        }
Ejemplo n.º 4
0
 protected override void Init()
 {
     m_sendOut = new PackageSendLib(this);
     processor = new PackageHandlers(this);
 }