Я хочу, чтобы весь сайт был защищен через login с FOSUserBundle. Я попытался установить security.yml, как это
security: encoders: Symfony\Component\Security\Core\User\User: plaintext FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: fos_userbundle: id: fos_user.user_manager firewalls: main: pattern: ^/ form_login: check_path: /login_check login_path: /login provider: fos_userbundle always_use_default_target_path: true default_target_path: /dashboard logout: path: /logout target: / anonymous: ~ #http_basic: # realm: "Secured Demo Area" access_control: - { path: ^/demo/secured/hello/admin/, roles: ROLE_ADMIN } #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
Но тогда я не знаю, что установить в config.yml, это мой config.yml
imports: - { resource: parameters.yml } - { resource: security.yml } framework: #esi: ~ translator: ~ 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_proxies: ~ session: ~ fragments: ~ http_method_override: true # 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, add the path in parameters.yml # eg database_path: %kernel.root_dir%/data/data.db3 # 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 } fos_user: db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' firewall_name: main user_class: Dashboard\UserBundle\Entity\User
и это мой контроллер
<?php namespace Proposals\ProposalsBundle\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Proposals\ProposalsBundle\Entity\Proposals; use Proposals\ProposalsBundle\Form\ProposalsType; /** * Proposals controller. * */ class ProposalsController extends Controller { /** * Lists all Proposals entities. * */ public function indexAction() { $em = $this->getDoctrine()->getManager(); $entities = $em->getRepository('ProposalsProposalsBundle:Proposals')->findAll(); return $this->render('ProposalsProposalsBundle:Proposals:index.html.twig', array( 'entities' => $entities, )); }
Когда я открываю любую страницу, вы не проверяете, зарегистрирован ли пользователь или нет. Я хочу, чтобы каждая страница была защищена путем входа в систему, если пользователь вошел в систему, тогда каждая страница открывается, если пользователь не зашел в систему, а затем страница не отображается или не перенаправляется на login.any help appriciated
Каждый раз, когда они одинаковы, никто не бросает глаз на документацию. Wayne. Но для вашего спама вы не должны получать ответ, но это было бы несправедливо ^^
security: firewalls: main: pattern: ^/ # other settings anonymous: true access_control: - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/, role: ROLE_USER }
для перехода на этот URL-адрес localhost / QuickBacklog / web / app_dev.php / dashboard
вы должны добавить это в security.yml
firewalls: main: pattern: ^/ form_login: provider: fos_userbundle default_target_path: /dashboard/ logout: ........ invalidate_session: false anonymous: ~
В файле маршрутизации
applicationlogin_success: pattern: /dashboard/ defaults: { _controller: SampleBundle:Default:FrontPage }
ИСПОЛЬЗОВАНИЕ default_target_path: ROUTING_PATTERN
u перенаправит его …