Exemplo n.º 1
0
        public IHttpActionResult AccessControlList(AccessControlListModel model)
        {
            if (model.Access != AccessModel.Subscribe)
            {
                _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] failed, \"Subscribe only\".{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
                return(BadResult());
            }

            if (!Guid.TryParse(model.ClientId, out var clientId))
            {
                _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] failed, \"ClientId error\".{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
                return(BadResult());
            }

            var topic = model.Topic;
            var arr   = topic.Split('/');

            if (arr.Length != 3)
            {
                _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] failed, \"Topic error\".{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
                return(BadResult());
            }

            var result = false;

            try
            {
                var component = new PushMessageComponent();
                result = component.AccessControlList(clientId, arr[0], arr[2]);
            }
            catch { }

            _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] {(result ? "successed" : "failed")}.{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
            return(result ? OkResult() : BadResult());
        }
        /// <summary>
        /// Viewの生成と、シングルトンなModelインスタンスの取得
        /// </summary>
        public ACLExtensionController()
        {
            oPage        = new TabPage("ACL Filter");
            aclView      = new AccessControlListView();
            aclView.Dock = DockStyle.Fill;
            oPage.Controls.Add(aclView);

            FiddlerApplication.UI.tabsViews.TabPages.Add(oPage);
            aclModel    = AccessControlListModel.GetInstance();
            configModel = ConfigModel.GetInstance();
        }
Exemplo n.º 3
0
 public AccessControlListView()
 {
     InitializeComponent();
     aclModel    = AccessControlListModel.GetInstance();
     configModel = ConfigModel.GetInstance();
 }