title: Unrecognized option "csrf_provider" under "security.firewalls.main.form_login" despite csrf enabled
body: <p>After setting up the FOSUser Bundle I have experienced this error</p>
  
  <blockquote>
    <p>Unrecognized option "csrf_provider" under "security.firewalls.main.form_login"</p>
  </blockquote>
  
  <p>Now I know how to use google and the two main things that could cause the problem are </p>
  
  <ol>
  <li>Not enabling the <strong>csrf_protection</strong> in <em>config.yml</em></li>
  <li>Not properly setting the <strong>csrf_provider</strong> in <em>security.yml</em></li>
  </ol>
  
  <p>The problem here is the fact that both of these options are properly set for me.</p>
  
  <p>Here is the config.yml</p>
  
  <pre><code>imports:
      - { resource: parameters.yml }
      - { resource: security.yml }
      - { resource: services.yml }
  
  # Put parameters here that don't need to change on each machine where the app is deployed
  # http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
  parameters:
      locale: en
  
  framework:
      #esi:             ~
      #translator:      { fallbacks: ["%locale%"] }
      secret:          "%secret%"
      router:
          resource: "%kernel.root_dir%/config/routing.yml"
          strict_requirements: ~
      form:            ~
      csrf_protection:
          enabled: true
      validation:      { enable_annotations: true }
      #serializer:      { enable_annotations: true }
      templating:
          engines: ['twig']
      default_locale:  "%locale%"
      trusted_hosts:   ~
      trusted_proxies: ~
      session:
          # http://symfony.com/doc/current/reference/configuration/framework.html#handler-id
          handler_id:  session.handler.native_file
          save_path:   "%kernel.root_dir%/../var/sessions/%kernel.environment%"
      fragments:       ~
      http_method_override: true
      assets: ~
      php_errors:
          log: true
  
  # Twig Configuration
  twig:
      debug:            "%kernel.debug%"
      strict_variables: "%kernel.debug%"
  
  # Doctrine Configuration
  doctrine:
      dbal:
          driver:   pdo_mysql
          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%/../var/data/data.sqlite"
          #   2. Uncomment database_path in parameters.yml.dist
          #   3. Uncomment next line:
          #path:     "%database_path%"
  
      orm:
          auto_generate_proxy_classes: "%kernel.debug%"
          naming_strategy: doctrine.orm.naming_strategy.underscore
          auto_mapping: true
  
  # Swiftmailer Configuration
  swiftmailer:
      transport: "%mailer_transport%"
      host:      "%mailer_host%"
      username:  "%mailer_user%"
      password:  "%mailer_password%"
      spool:     { type: memory }
  
  fos_user:
      db_driver: orm
      firewall_name: main
      user_class: AppBundle\Entity\User
  </code></pre>
  
  <p>And security.yml</p>
  
  <pre><code>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_provider: security.csrf.token_manager
                 # csrf_provider: form.csrf_provider
                 # my syomfony is 3.1 I believe
             logout:       true
             anonymous:    true
  
      access_control:
          - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/admin/, role: ROLE_ADMIN }
  </code></pre>
  
  <p>I will also throw in the routing.yml which is the one from the FOS bundle setup</p>
  
  <pre><code>app:
      resource: "@AppBundle/Controller/"
      type:     annotation
  
  fos_user_security:
      resource: "@FOSUserBundle/Resources/config/routing/security.xml"
  
  fos_user_profile:
      resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
      prefix: /profile
  
  fos_user_register:
      resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
      prefix: /register
  
  fos_user_resetting:
      resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
      prefix: /resetting
  
  fos_user_change_password:
      resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
      prefix: /profile
  </code></pre>
  
  <p>And with all that I'm still getting this issue. It's happeing upon clearing the cache in console so...clearing the cache isn't really a fix to this issue.</p>
  
  <p>Has anyone else experienced this issue?</p>