0
現在我正在爲使用Silex的持續集成服務器開發一個簡單的API。 現在,每個人都可以通過密鑰訪問API,但對於登錄用戶,我希望API無需任何密鑰即可使用。Silex SecurityServiceProvider,匿名設置不起作用
現在對於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 /頁它仍然重定向我到登錄頁面,但你可以看到匿名=>真正。
我可以在頂部移動/ api的防火牆並刪除匿名行,但是我無法訪問SecurityContext對象來檢查用戶是否已通過身份驗證。
我要保護一切,除了/ API /。 – nvartolomei
在這種情況下,定義兩個防火牆(參見上面的示例)。 –
它仍然重定向到登錄頁面。我在最初的問題中這樣說過。我可以在不登錄的情況下訪問/ api「'anonymous'=> true」,但是在添加之後,Silex會重定向到/ login。 – nvartolomei