如何禁止访问捆绑交换机ip

时间:2014-03-04 15:26:45

标签: symfony

在我的网站上用Symfony 2开发我有一个捆绑来控制我的Raspberry Pi在家里进行一些自动化但网站是在线的,我想禁止访问这个捆绑给所有拥有公共IP的人,以隐藏链接我的菜单我在树枝上做这个:

{% if (app.request.server.get("REMOTE_ADDR") == '192.168') or (app.request.server.get("REMOTE_ADDR") == '127.0.0.1')%} <li> <a href="{{ path('admin_rpi_homepage') }}">administration RPI</a> </li> {% endif %}

但是我仍然可以通过键入所有路由的直接URL来访问,我怎么能修改它,我想如果在每个控制器中放置但看起来有点“沉重”

1 个答案:

答案 0 :(得分:1)

您可以使用选民黑名单IP。

在此处创建您的选民:http://symfony.com/doc/current/cookbook/security/voters.html

在你的控制器中是这样的:

use Symfony\Component\Security\Acl\Domain\ObjectIdentity;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;

...
public function indexAction() {
    $securityContext = $this->get('security.context');
              $objectIdentity = new ObjectIdentity('class', 'Vendor\Bundle\Class');
              if (false === $securityContext->isGranted('VIEW', $objectIdentity)) {
                  return $this->redirect($this->generateUrl('_welcome'));
              }

...

您的路线可以访问,但控制器会将请求发送出去并将其重定向到主页