“security.firewalls.main.form_login”下无法识别的选项“csrf_token_generator”
Unrecognized option “csrf_token_generator” under “security.firewalls.main.form_login”
我正尝试按照教程安装 FOSUserBundle:https://symfony.com/doc/master/bundles/FOSUserBundle/index.html
但出现错误:
InvalidConfigurationException: Unrecognized options "csrf_token_generator" under "security.firewalls.main.form_login"
我的config.yml
进口:
- {资源:parameters.yml}
- {资源:security.yml}
framework:
csrf_protection:
enabled: true
#esi: ~
#translator: { fallback: "%locale%" }
secret: "%secret%"
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
templating:
engines: ['twig']
#assets_version: SomeVersionScheme
default_locale: "%locale%"
trusted_hosts: ~
trusted_proxies: ~
session:
# handler_id set to null will use default session handler from php.ini
handler_id: ~
fragments: ~
http_method_override: true
fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: Utilisateurs\UtilisateursBundle\Entity\Utilisateurs
# Twig Configuration
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
#closure:
# jar: "%kernel.root_dir%/Resources/java/compiler.jar"
#yui_css:
# jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }
我的security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
csrf_provider: form.csrf_provider
logout: true
anonymous: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/demo/secured/login$
security: false
secured_area:
pattern: ^/demo/secured/
form_login:
check_path: _security_check
login_path: _demo_login
logout:
path: _demo_logout
target: _demo
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_ADMIN }
enter code here
有人可以帮助我吗?
问题出在您的 security.yml 文件中。您列出了两个 CSRF 令牌管理器。
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
根据您使用的 Symfony 版本,如果您的 Symfony 版本低于 2.8,您可以使用 csrf_token_generator
或 csrf_provider
,而不是两者都使用。
您需要删除或评论其中一行。
正在编辑这个 post 因为我无法评论你的新 post。
My version symfony is 2.4 : "symfony/symfony": "2.4.*"
But i have these new error:
ServiceNotFoundException: You have requested a non-existent service "fos_user.doctrine_registry".
这可能是因为您的 Symfony 版本 <2.6.* 并且与您使用的 FOSUserBundle 版本冲突。
要临时解决,请编辑您的 config.yml
services:
fos_user.doctrine_registry:
alias: doctrine
# or use this, unsure on which one for your version of Symfony
# alias: doctrine_mongodb
其他修复可能会在您的 composer.json 中使用特定的拉动(旧版本 - 不推荐)。这已经针对 Symfony 2.6.* 进行了测试,并绕过了您 posted.
的相同问题
"friendsofsymfony/user-bundle": "dev-master##6ccff96434c0ac7fee077d1dce90966341dfd278"
您可以阅读有关此特定问题的更多信息:
https://github.com/FriendsOfSymfony/FOSUserBundle/issues/2048
Symfony 分支也作为临时修复存在:
https://github.com/symfony/symfony/pull/17554
我正尝试按照教程安装 FOSUserBundle:https://symfony.com/doc/master/bundles/FOSUserBundle/index.html
但出现错误:
InvalidConfigurationException: Unrecognized options "csrf_token_generator" under "security.firewalls.main.form_login"
我的config.yml 进口: - {资源:parameters.yml} - {资源:security.yml}
framework:
csrf_protection:
enabled: true
#esi: ~
#translator: { fallback: "%locale%" }
secret: "%secret%"
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
templating:
engines: ['twig']
#assets_version: SomeVersionScheme
default_locale: "%locale%"
trusted_hosts: ~
trusted_proxies: ~
session:
# handler_id set to null will use default session handler from php.ini
handler_id: ~
fragments: ~
http_method_override: true
fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: Utilisateurs\UtilisateursBundle\Entity\Utilisateurs
# Twig Configuration
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
#closure:
# jar: "%kernel.root_dir%/Resources/java/compiler.jar"
#yui_css:
# jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }
我的security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
csrf_provider: form.csrf_provider
logout: true
anonymous: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/demo/secured/login$
security: false
secured_area:
pattern: ^/demo/secured/
form_login:
check_path: _security_check
login_path: _demo_login
logout:
path: _demo_logout
target: _demo
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_ADMIN }
enter code here
有人可以帮助我吗?
问题出在您的 security.yml 文件中。您列出了两个 CSRF 令牌管理器。
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
根据您使用的 Symfony 版本,如果您的 Symfony 版本低于 2.8,您可以使用 csrf_token_generator
或 csrf_provider
,而不是两者都使用。
您需要删除或评论其中一行。
正在编辑这个 post 因为我无法评论你的新 post。
My version symfony is 2.4 : "symfony/symfony": "2.4.*"
But i have these new error:
ServiceNotFoundException: You have requested a non-existent service "fos_user.doctrine_registry".
这可能是因为您的 Symfony 版本 <2.6.* 并且与您使用的 FOSUserBundle 版本冲突。
要临时解决,请编辑您的 config.yml
services:
fos_user.doctrine_registry:
alias: doctrine
# or use this, unsure on which one for your version of Symfony
# alias: doctrine_mongodb
其他修复可能会在您的 composer.json 中使用特定的拉动(旧版本 - 不推荐)。这已经针对 Symfony 2.6.* 进行了测试,并绕过了您 posted.
的相同问题"friendsofsymfony/user-bundle": "dev-master##6ccff96434c0ac7fee077d1dce90966341dfd278"
您可以阅读有关此特定问题的更多信息: https://github.com/FriendsOfSymfony/FOSUserBundle/issues/2048
Symfony 分支也作为临时修复存在: https://github.com/symfony/symfony/pull/17554