[英]symfony2 configuring the firewall - weird behaviour at login
我正在將symfony2與FOSUserBundle一起使用,並且試圖正確設置防火牆。
我希望匿名用戶不能訪問我網站的主要部分。 主頁(公共模式下的$)和其他一些模式應該可用。
使用當前配置,登錄后我將重定向到主頁,但仍以匿名身份登錄。 如果我之后直接輸入不允許直接匿名的頁面的URL,則可以訪問它並登錄(在探查器中)。
我的配置:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
public:
pattern: /(login$|register|resetting|public|$)
anonymous: true
main:
pattern: ^/
anonymous: false
provider: main
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
logout:
path: fos_user_security_logout
target: /
我該怎么做才能使其正常工作(登錄后正確記錄)。
編輯:我更好地了解發生了什么:登錄后,我被重定向到首頁=根地址。 這首先落入公共防火牆,這就是為什么我不被視為已連接。
做完了! 解決方案涉及防火牆的上下文屬性,在此處對其進行更好的描述: 使用一個登錄表單對多個symfony2防火牆進行身份驗證
我的配置現在變為:
防火牆:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
guest:
pattern: /(user/login$|user/register|user/resetting|$)
anonymous: true
context: main_auth
main:
pattern: ^/(?!user/login$)
anonymous: false
provider: main
context: main_auth
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
logout:
path: fos_user_security_logout
target: /
remember_me:
key: "%secret%"
lifetime: 86400 # 365 jours en secondes
path: /
domain: ~ # Prend la valeur par défaut du domaine courant depuis $_SERVER
oauth:
remember_me: true
resource_owners:
facebook: "/loginhwi/check-facebook"
github: "/loginhwi/check-github"
google: "/loginhwi/check-google"
twitter: "/loginhwi/check-twitter"
linkedin: "/loginhwi/check-linkedin"
flickr: "/loginhwi/check-flickr"
login_path: fos_user_security_login
check_path: fos_user_security_check
failure_path: fos_user_security_login
success_handler: foodmeup_user.handler_auth
oauth_user_provider:
service: fosubuser.provider
好吧,您始終可以在登錄后對您重定向的路徑進行硬編碼(在security.yml
文件中)。 你可以在這里閱讀更多
security:
firewalls:
main:
form_login:
default_target_path: default_security_target
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.