簡體   English   中英

Symfony2>在公共路由中使用安全上下文(可能的替代方法)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM