当前位置: 首页 > 知识库问答 >
问题:

多个防火墙(管理员和用户)

鱼宜
2023-03-14

我的应用程序需要2个防火墙,一个用于管理员,另一个用于用户。在my security.yml I config中:

    admin:
        pattern:      ^/admin
        provider:     fos_userbundle
        form_login:
            login_path:     /admin/login
            use_forward:    false
            check_path:     /admin/login_check
            failure_path:   null
            default_target_path: /admin/dashboard
            always_use_default_target_path: true
        logout:
            path:     /admin/logout
            target: /admin
        anonymous: ~

    # defaut login area for standard users
    main:
        pattern:      ^/
        form_login:
            provider:       fos_userbundle
            csrf_provider:  form.csrf_provider
        logout:
            path:     /logout
        anonymous:    ~

我不知道这个配置是否正确。当我从主区域登录时,一切都正常,但当我从管理员登录时,它会将我重定向到主路径,而不是默认的目标路径。我尝试将提供程序更改为自定义提供程序(例如在内存中)以重新检查管理员防火墙,但我仍然通过用户从fos_userbundle提供程序登录。你能帮助我吗?

共有3个答案

解修然
2023-03-14

我将主防火墙模式更改为^/(?!admin),现在一切正常。谢谢你的帮助!

    main:
        pattern:      ^/(?!admin)
        provider:       default_provider
        anonymous:    ~

    admin:
        pattern:      ^/admin
        provider:     admin_provider
        anonymous:    ~
苏弘盛
2023-03-14

尝试删除匿名并改用访问控制。理论上,Symfony2将自动将用户从管理员重定向回管理员,即使他们使用相同的登录屏幕。

Symfony2中的安全性是级联的(so/admin也将出现在main下)

例如#deaut登录区标准用户主:模式:^/form_login:提供者:fos_userbundlecsrf_provider:form.csrf_provider注销:路径: /logout

admin:
    pattern:      ^/admin
    provider:     fos_userbundle
    form_login:
        use_forward:    false
        failure_path:   null
        target: /admin/dashboard
        always_use_default_target_path: true
    logout:
        target: /admin

 access_control:
    - { path: ^/, roles: [IS_AUTHENTICATED_ANONYMOUSLY, ROLE_USER] }
    - { path: ^/admin, roles: [ROLE_ADMIN] }

您可能需要指定不同的角色。

韦宏扬
2023-03-14

我认为这是因为有一个主模式main:pattern:^/it控件,即使是^/admin也尝试用^/home或^/main替换^/it,这两种模式都可以

 类似资料:
  • Programming can be fun, so can cryptography; however they should not be combined. — Kreitzberg and Shneiderman C 编程语言被形容为 “只写” 的语言;它是如此的简洁、高效, 甚至你自己读自己写过的代码都可能很难理解。 同样地,Linux 内核内置的包过滤防火墙的 iptables 的配置

  • 本文向大家介绍详解CentOS7防火墙管理firewalld,包括了详解CentOS7防火墙管理firewalld的使用技巧和注意事项,需要的朋友参考一下 学习apache安装的时候需要打开80端口,由于centos 7版本以后默认使用firewalld后,网上关于iptables的设置方法已经不管用了,想着反正iptable也不太熟悉,索性直接搬官方文档,学习firewalld了,好像比ipta

  • 基本概念 netfilter Linux 内核包含一个强大的网络过滤子系统 netfilter。netfilter 子系统允许内核模块对遍历系统的每个网络数据包进行检查。这表示在任何传入、传出或转发的网络数据包到达用户空间中的组件之前,都可以通过编程方式检查、修改、丢弃或拒绝。netfilter 是 RHEL 7 计算机上构建防火墙的主要构建块。 尽管系统管理员理论上可以编写自己的内核模块以与 n

  • 我有一个服务器写在JavaServerSocket。 我有一个客户端,它位于一个公司防火墙之上,除了公共端口之外,它阻止了所有东西。 我已在SMTP端口(#25)上启动服务器。 有防火墙的用户连接到它,到目前为止一切正常。 然后服务器处理ServerSocket.accept()。据我所知,它在一个随机端口上创建一个套接字(每次端口号都不同)。因为防火墙而失败。 我的问题是-如何制作ServerS

  • 我们有一个相当严格的网络分段策略。我正在使用云代工实例来部署应用程序。防火墙规则已经设置为从云代工实例中到达kafka集群。我相信防火墙规则也已经设置为到达动物园管理员实例。我需要实际确认一下。 我的问题似乎是我可以向kafka生成消息,但我的消费者似乎没有取件。它似乎在“轮询”时挂起。 对于我的防火墙规则,是否有一些隐藏的主机或端口需要处理,而不仅仅是标准主机和kafka和zookeeper节点

  • iptables 命令 防火墙分为硬件防火墙和软件防火墙 防火墙策略一般分为两种:开放和屏蔽 iptables 是 Linux 上常用的防火墙软件 iptables 一共有四张表和五条链 iptables (选项)[表名] (选项)[链名规则] (选项)[动作] 表: Raw 负责连接跟踪 Mangle 负责包处理 Nat 负责地址转换 Filter 负责包过滤 链名规则: PREROUTING