【发布时间】:2013-12-09 12:46:50
【问题描述】:
现在我正在为使用 Silex 的持续集成服务器开发一个简单的 API。 现在每个人都应该可以使用密钥访问 api,但是对于已登录的用户,我希望 api 在没有任何密钥的情况下可用。
现在 SecurityServiceProvider 的配置如下所示:
'security.firewalls' => array(
'login' => array(
'pattern' => '^/auth/login'
),
'secured' => array(
'pattern' => '^/',
'form' => array(
'login_path' => "/auth/login",
'check_path' => "/auth/dologin",
'username_parameter' => 'login[username]',
'password_parameter' => 'login[password]',
"csrf_parameter" => "login[_token]",
"failure_path" => "/auth/login",
),
'logout' => array(
'logout_path' => "/auth/logout",
"target" => '/',
"invalidate_session" => false
),
'users' => array(
// admin:foo
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg==')
)
),'api' => array(
'pattern' => '^/api',
'anonymous' => true
),
)
可悲的是,当我在 /api/ 页面上时,它仍然会将我重定向到登录页面,尽管您可以看到匿名 => true。
我可以在顶部移动 /api 的防火墙并删除匿名行,但是我无权访问 SecurityContext 对象来检查用户是否经过身份验证。
【问题讨论】: