首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Silex security.firewalls和多个防火墙

Silex security.firewalls和多个防火墙
EN

Stack Overflow用户
提问于 2018-01-04 20:16:06
回答 1查看 120关注 0票数 0

我正在尝试使用Silex来保护我正在开发的内部系统上的路由。这可能是一个小的特殊情况,其中我有一个接口(可在/admin访问),它在登录时调用/api/v1/*端点。两个端点需要完全开放,不能进行身份验证检查。这两个端点由第三方系统(也是内部系统)定期调用

我的security.firewalls配置中包含以下内容:

代码语言:javascript
运行
复制
[
    'secured' => [
        'pattern' => '^/admin',
        'http' => false,
        'form' => [
            'login_path' => '/login',
            'check_path' => '/admin/login_check',
            'default_target_path' => '/admin'
        ],
        'logout' => [
            'logout_path' => '/admin/logout',
            'invalidate_session' => true,
            'target_url' => '/login'
        ],
        'users' => new UserProvider,
    ],
    'api_v1_details' => [
        'pattern' => '^/api/v1/details',
        'anonymous' => true,
    ],
    'api_v1_failures' => [
        'pattern' => '^/api/v1/failures',
        'anonymous' => true,
    ],
    'api_v1' => [
        'pattern' => '^/api/v1/',
        'anonymous' => false,
        'stateless' => false,
    ],
];

在我的security.access_rules中,我有:

代码语言:javascript
运行
复制
[
    ['^/admin', 'ROLE_ADMIN'],
    ['^/api/v1', 'ROLE_ADMIN'],
]

我可以成功登录,并且为了访问任何/admin/*页面,我必须通过身份验证,因此我知道防火墙设置至少部分工作。但是,从/admin/*页面到/api/v1/*端点的AJAX请求,即使它们包含会话cookie,也不会经过身份验证,并且对于/login是302'd。如果我试图在未经过身份验证的情况下访问任何/api/v1/*端点(在我的示例中,是通过PostMan),我也会得到登录页面的302。

如果我删除['^/api/v1', 'ROLE_ADMIN'],访问规则并重试,那么它将正确地防火墙端点,其中两个打开的端点返回正确的响应,其余的端点返回302。

但是,在所有情况下,来自经过身份验证的/admin/*页面的所有AJAX请求都会返回302。

我想要的情况是,当我通过登录界面进行身份验证时,从/admin/*页面到/api/v1/*端点的所有AJAX请求也将进行身份验证,而当我未通过身份验证时,只有两个端点/api/v1/details/api/v1/failures可以访问,所有其他端点都会以某种方式失败(最好是使用401JSON响应,更好的是使用JSON响应)

这是一个仅供内部使用的系统,不是公开生产的,而且只有几个人使用该系统,因此它不一定需要遵守所有通常的指导原则和正确的状态代码,等等。

希望有人能给我指明正确的方向!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-12 00:34:51

Symfony安全组件,默认情况下隔离每个防火墙,也就是说,如果你是在一个防火墙上进行身份验证,那么你并不是所有防火墙的身份验证!

我发现你可以在set the same context to all firewalls的同时验证winthin。

如果你已经在这里登陆,在Silex中检查this little issue的上下文设置(感谢通知@AndrewPlank)

另外,请注意Silex EOL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48095138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档