【发布时间】:2015-09-08 18:09:52
【问题描述】:
我试图了解 Silex 的防火墙和安全访问规则是如何与路径相关的。这仅在您尝试通过登录表单访问时才有效吗?您可以使用从 api 检查发回的规则吗(请参阅Proper way to configure Silex Firewall to use api keys,我正在工作)。如果可能的话,我希望能够在 SecurityServiceProvider 中设置它,而不是在控制器中。
这可能吗?
编辑:添加安全防火墙..
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'unsecured' => array(
'pattern' => new RequestMatcher('^/api/brand/get'))
),
'security.access_rules' => array(
array('^/api/brand/get', 'ROLE_ADMIN'),
array('^/api/account/get', 'ROLE_ADMIN'),
array('^/.+$', 'ROLE_USER'),
array('^/', '')
)
));
【问题讨论】:
-
为什么你的防火墙被称为不安全的,你的意思是对 ^/api/brand/get 的公共访问(我不这么认为,在你的访问规则中,你只为管理员访问创建了一个约束)?此外,您的防火墙中缺少身份验证方法,因此不会调用身份验证...
-
你指的是Definig a custom Authentication Provider?让我研究一下并添加进去。
-
我也在关注我think you've replied to的一个帖子
-
是的,那是我的,那里的链接很有帮助。当我告诉您您缺少身份验证方法时,我的意思是任何(自定义或 Symfony 的默认值),但是如果您尝试创建 API 令牌身份验证,那确实是自定义的(按照 Symfony 的链接doc,你会看到如何配置它)