public function testInstantiateWithWhitelistRules() { $s = new ConfigSubscriber(array("^/" => array('ip_whitelist' => array('192.168.*.*')))); $s->addConfigHandler(new IpWhitelistHandler()); $f = new Firewall(); $f->addSubscriber($s); $this->assertTrue($f->verifyRequest($this->createRequestFromIp("192.168.30.40"))); $s = new ConfigSubscriber(array("^/" => array('ip_whitelist' => array('192.168.*.*')))); $s->addConfigHandler(new IpWhitelistHandler()); $f = new Firewall(); $f->addSubscriber($s); $this->setExpectedException("AC\\Component\\Firewall\\Exception\\InvalidIpException"); $this->assertTrue($f->verifyRequest($this->createRequestFromIp("80.0.0.0"))); }
public function register(Application $app) { //shared firewall service $app['firewall'] = $app->share(function ($app) { $f = new Firewall($app['dispatcher']); $f->addSubscriber($app['firewall.configurator']); return $f; }); //configuration service - can be used by other extensions //in Application::boot to register other config handlers $app['firewall.configurator'] = $app->share(function ($c) { $s = new ConfigSubscriber($app->getParameter('firewall.rules', array())); $s->addConfigHandler(new IpBlacklistHandler()); $s->addConfigHandler(new IpWhitelisttHandler()); }); }