我有一個Symfony應用程序,並需要限制對指定的一組ips的路徑列表的訪問。symfony安全限制訪問到指定的ips集合的路由列表
這是一個仍在開發中的站點所需要的,但將會分階段進行。任何人都可以訪問完成的路徑。
只能從指定的一組IP地址訪問其他路徑。 否則應該顯示一個簡單的403。
路徑不共享相同的前綴。 我也不想暫時改變實際路徑。
什麼是最好的方法來做到這一點? 在access_control中添加大量項目並不是一個好主意。
我可以添加防火牆偵聽程序或可以檢查ip和請求路徑的東西嗎?我可以從那裏拋出一個簡單的AccessDenied異常嗎?
是ROLE_USER_IP在symfony中保留的角色?或者只是一個例子。它不適合我..... 我似乎有它使用以下規則爲1路徑: - {路徑:^ /示例,角色:[IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER],ips:%ips_testing%} - {path:^/example,roles:ROLE_ACCESS_DENIED} 第二條規則會在第一條規則不匹配的情況下踢出訪客。 – DoppyNL
@DoppyNL不保留ROLE_USER_IP僅僅是一個例子......你可以在同一個配置中自己創建角色名稱。 ..規則是他們需要從ROLE_開始......我將更新我的anwer – nakashu
當OR規則完全匹配或者用戶沒有指定ROLE時,安全組件將停止檢查規則。當ip不匹配時,它會嘗試下一個規則。這就是爲什麼你需要爲同一條路徑添加另一條規則,但是使用不存在的ROLE來實際拒絕訪問。看到答案中使用的食譜鏈接,它在那裏解釋得非常詳細。 – DoppyNL