Exemplo n.º 1
0
        /// <inheritdoc />
        public ICefSender CreateSender(ArcSightSection cefConfig)
        {
            Logger.LogDebug("Call CreateSender...");
            ISyslogMessageSender syslogSender;

            switch (cefConfig.Protocol)
            {
            case "tcp":
                syslogSender = new SyslogTcpSender(cefConfig.ServerHost, cefConfig.ServerPort);
                break;

            case "udp":
                syslogSender = new SyslogUdpSender(cefConfig.ServerHost, cefConfig.ServerPort);
                break;

            case "local":
                syslogSender = new SyslogLocalSender();
                break;

            default:
                throw new ArcSightConfigurationException($"The syslog protocol {cefConfig.Protocol} has not supported");
            }

            Logger.LogDebug("Call CreateSender done.");
            return(new CefSender(syslogSender));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Инициализирует экземпляр <see cref="ArcSightClient" /> ссылками на экземпляры <see cref="IConfiguration" />,
        /// <see cref="IErrorHandlingPoliciesFactory" />, <see cref="ICefSenderFactory" />.
        /// </summary>
        /// <param name="configuration">Ссылка на интерфейс, предоставляющий доступ к конфигурации</param>
        /// <param name="policiesFactory">Ссылка на интерфейс фабрики по созданию политик вызовов</param>
        /// <param name="cefSenderFactory">Ссылка на интерфейс фабрики по созданию классов для доступа к каналу отправки</param>
        public ArcSightClient(IConfiguration configuration, IErrorHandlingPoliciesFactory policiesFactory, ICefSenderFactory cefSenderFactory)
        {
            _cefConfig = configuration.ThrowIfNull(nameof(configuration))
                         .GetSection("arcSight")
                         .Get <ArcSightSection>()
                         .ThrowIfNull(new InvalidOperationException("Can not find CEF configuration"));

            _policy = policiesFactory.ThrowIfNull(nameof(policiesFactory))
                      .CreateStdCommunicationPolicy();

            _cefSenderFactory = cefSenderFactory.ThrowIfNull(nameof(cefSenderFactory));

            _serializer = CreateSerializer();
        }