我的security.yml代码有时会给我带来路由错误。我认为我的代码是错误的。这是我的安全代码。yml到目前为止
firewalls:
main_login:
pattern: ^/account
anonymous: ~
form_login:
login_path: /account/login
check_path: /account/login_check
logout:
path: /account/logout
target: /
oauth_login:
pattern: ^/
anonymous: ~
oauth:
resource_owners:
facebook: /connect/login_facebook
login_path: /connect/login
use_forward: false
failure_path: /connect/login
default_target_path: /connectfb
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/connect/login$
security: false
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/account, roles: ROLE_USER }
如何配置我的安全性是最好的方法。yml我需要main_login作为主要登录选项,oauth_login为次要登录选项我尝试在main_login上使用pattern: ^/
,在oauth_login中使用pattern: ^/connect
。但没有奏效。在我当前的代码中,如果我在登录时输入了错误的用户名或密码,请给出此错误No route found for "GET /account/login" (from "http://localhost/app_dev.php/login")
。
并且我希望main_login的登录和注销路径仅为/login
和/logout
我认为问题出在这里:
login:
pattern: ^/connect/login$
security: false
我在使用FOSUSerBundle、SonataAdminBundle和HWIOAuthBundle 时遇到了类似的问题
我在SonataUserBundle安装步骤中找到了答案
我编辑以匹配您的路线
firewalls:
# Disabling the security for the web debug toolbar, the profiler and Assetic.
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
# -> custom firewall for the admin area of the URL
main_login:
pattern: /account(.*)
context: user
form_login:
provider: fos_userbundle
login_path: /account/login
use_forward: false
check_path: /account/login_check
failure_path: null
logout:
path: /account/logout
anonymous: true
# -> end custom configuration
# default login area for standard users
# This firewall is used to handle the public login area
# This part is handled by the FOS User Bundle
# secured_area is user for hwioauthbundle
oauth_login:
pattern: .*
context: user
remember_me:
key: %secret%
lifetime: 30 # 365 days in seconds
path: /
always_remember_me: true
remember_me_parameter: _remember_me
form_login:
provider: fos_userbundle
login_path: /connect/login
use_forward: false
check_path: /login_check
failure_path: null
logout:
path: /connect/logout
oauth:
remember_me: true
# https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/internals/response_object_and_paths.md
resource_owners:
facebook: "/connect/login_facebook"
login_path: /connect/login
use_forward: false
failure_path: /connect/login
oauth_user_provider:
service: my_user_provider
anonymous: true
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/account, roles: ROLE_USER }