Silex 安全配置
Silex security configuration
我正在为 silex 安全问题苦苦挣扎:
我有以下内容:
$app->register(new Silex\Provider\SecurityServiceProvider());
以后:
$app['security.firewalls'] = array(
'admin' => array(
'pattern' => '^/admin',
'http' => true,
'users' => array(
// raw password is foo
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='),
),
),
);
但是当我点击路径时 "localhost/admin" 我得到:
Found error: No route found for "GET /admin"
无法理解 silex rly 页面上的文档。我应该向控制器注册安全过滤器吗?
我在控制器中定义如下函数:
public function admin(){
return 'Hello';
}
路线是:
$app->get('/admin', 'app.vendor_controller:admin');
现在我得到:
Hello
我一点击路径 /admin ,就没有身份验证表单。所以没有包含身份验证过程...
编辑~~~~~~~~~~~~~~~~~~~~~
好的,所以现在在点击 url/admin 之后,我得到了带有要放置的字段的身份验证横幅,作为用户和密码,我正在输入 admin 和 foo,但对此没有任何影响。
`A username and password are being requested by http://localhost:8080. The site says: “Secured”`
代码如下所示:
$app['security.firewalls'] = array(
'admin' => array(
'pattern' => '/admin',
'http' => true,
'users' => array(
'admin' => array('ROLE_ADMIN', 'foo')
)));
$app['security.access_rules'] = array(
array('/admin', 'ROLE_ADMIN'),
);
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'pattern' => '/admin',
'http' => true,
'users' => array(
// raw password is foo
'admin' => array('ROLE_ADMIN', 'foo'),
))));
您配置了匹配每个 /admin*
url 的防火墙,但这并不意味着每个 URL 都需要身份验证。你可以成为 anonymous user,这很好。如果你想告诉 silex "the user need the ROLE_ADMIN
to be allowed here",你需要添加
$app['security.access_rules'] = array(
array('^/admin', 'ROLE_ADMIN'),
);
我正在为 silex 安全问题苦苦挣扎:
我有以下内容:
$app->register(new Silex\Provider\SecurityServiceProvider());
以后:
$app['security.firewalls'] = array(
'admin' => array(
'pattern' => '^/admin',
'http' => true,
'users' => array(
// raw password is foo
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='),
),
),
);
但是当我点击路径时 "localhost/admin" 我得到:
Found error: No route found for "GET /admin"
无法理解 silex rly 页面上的文档。我应该向控制器注册安全过滤器吗?
我在控制器中定义如下函数:
public function admin(){
return 'Hello';
}
路线是:
$app->get('/admin', 'app.vendor_controller:admin');
现在我得到:
Hello
我一点击路径 /admin ,就没有身份验证表单。所以没有包含身份验证过程...
编辑~~~~~~~~~~~~~~~~~~~~~
好的,所以现在在点击 url/admin 之后,我得到了带有要放置的字段的身份验证横幅,作为用户和密码,我正在输入 admin 和 foo,但对此没有任何影响。
`A username and password are being requested by http://localhost:8080. The site says: “Secured”`
代码如下所示:
$app['security.firewalls'] = array(
'admin' => array(
'pattern' => '/admin',
'http' => true,
'users' => array(
'admin' => array('ROLE_ADMIN', 'foo')
)));
$app['security.access_rules'] = array(
array('/admin', 'ROLE_ADMIN'),
);
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'pattern' => '/admin',
'http' => true,
'users' => array(
// raw password is foo
'admin' => array('ROLE_ADMIN', 'foo'),
))));
您配置了匹配每个 /admin*
url 的防火墙,但这并不意味着每个 URL 都需要身份验证。你可以成为 anonymous user,这很好。如果你想告诉 silex "the user need the ROLE_ADMIN
to be allowed here",你需要添加
$app['security.access_rules'] = array(
array('^/admin', 'ROLE_ADMIN'),
);