[英]Symfony2 > Use Security Context in Public Route (possible alternative)
我有一個功能UserController:saveUserAction()
。 每當需要創建或修改用戶實體時,整個系統都會使用此功能。 這可能發生在三個地方:
1)管理面板→用戶管理(系統管理員可以創建/修改用戶)。
2)成員儀表板→我的詳細信息(用戶可以編輯自己的詳細信息)。
3)注冊(非用戶可以注冊並為他們創建一個用戶)。
現在,某些字段只能由管理員設置,例如USER_ROLE。 (我不希望有人注冊“黑客”該系統並以管理員身份注冊自己)。 通常, if ($this->get('security.context')->isGranted('ROLE_ADMIN'))
可以很好地確定用戶是否為管理員,但可以認為到saveUser()
的路徑是公共的(為了促進公共注冊),我得到了錯誤:
The security context contains no authentication token. One possible reason may be that there is no firewall configured for this URL.
除了手動檢查已登錄用戶(如果有已登錄用戶)具有什么角色之外,是否有辦法在公共路徑上使用安全上下文,或者是否存在某種替代方法,因為這在Symfony2上非常笨拙>更輕松地確定訪問權限
我找到了解決方案。 我將路由放置在防火牆下,並在security.yml中放置了一個例外,即該特定路由已通過匿名身份驗證。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.