2012-03-28 8 views
0

Die Art und Weise, wie ich die Authentifizierung in meiner App handhabe, ist, 100% alles hinter die Authentifizierung zu stellen und dann bestimmte Ausnahmen anzugeben.Umgehen der Authentifizierung auf Symfony2 "Willkommen" -Seite

Diese Ausnahmen umfassen die Anmeldeseite und einige andere Seiten. Alles funktioniert gut außer einem Teil: die "Standard" -Seite, oder wie immer Sie es nennen möchten. Ich möchte nicht, dass sich Leute einloggen müssen, um die Titelseite meiner Site zu sehen, aber ich weiß nicht, wie man dafür eine Authentifizierung benötigt.

Hier ist meine Route für meine Begrüßungsseite:

_welcome: 
    pattern:/
    defaults: { _controller: VNNPressboxBundle:User:welcome } 

meine hier app/config/security.yml:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: 
      algorithm: sha1 
      iterations: 1 
      encode_as_base64: false 
     VNN\PressboxBundle\Entity\User: 
      algorithm: sha1 
      iterations: 1 
      encode_as_base64: false 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     administrators: 
      entity: { class: VNNPressboxBundle:User, property: username } 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     secured_area: 
      pattern: ^/ 
      form_login: ~ 
      logout: ~ 
      anonymous: ~ 
      http_basic: 
       realm: "Secured Demo Area" 

    access_control: 
     - { path: ^/_welcome, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/new, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/create, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/thanks, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/agreement, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/welcome, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/activate, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/signup, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin, roles: ROLE_ADMIN } 
     - { path: ^/, roles: ROLE_USER } 

Der relevante Teil, natürlich, ist dies:

access_control: 
    - { path: ^/_welcome, roles: IS_AUTHENTICATED_ANONYMOUSLY } 

Auch wenn ich Wenn die Dinge so eingestellt sind, werde ich immer zum Login-Bildschirm gestartet, wenn ich versuche, zu meinem Willkommens-Pa zu gehen ge (und damit meine ich http://myapp.com/app_dev.php im Gegensatz zu http://myapp.com/app_dev.php/user/welcome). Was vermisse ich?

Antwort

0

Versuchen Sie, eine Ausnahme für die Standardseite zu erstellen und dann alle untergeordneten Elemente hinter der Authentifizierung festzulegen. Dies sollte alles außer Authentifizierung für die Standardseite hinter sich lassen. Es sollte auch mit Ihren Ausnahmen funktionieren.

+0

Nur diese erste Zeile schien es für mich zu tun. Vielen Dank! (Wenn ich beide Zeilen verwendet habe, hat es nicht funktioniert.) –

Verwandte Themen