how to secure whole pages except login page in symfony2?
fosuserbundle, php, symfony, yaml
Solution
Every time the same, nobody bats an eye on the documentation. Wayne. But for your spamming you shouldn't get a answer, but this would be unfair ^^
security:
firewalls:
main:
pattern: ^/
# other settings
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
Problem
I want to have whole site secured through login with FOSUserBundle. I tried to set security.yml like this ``` 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 } ``` But then I don't know what to set in config.yml this is my 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 # e.g. 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 ``` and this is my controller ``` <?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, )); } ``` When i open any page its not check either user is logged in or not.I want every page is secured through login if user logged in then every page open if user not logged in then page not show or redirect to login.any help appriciated