2012-03-28 2 views
0

내 앱에서 인증을 처리하는 방법은 인증 뒤에 모든 것을 넣은 다음 특정 예외를 지정하는 것입니다.Symfony2 "welcome"페이지에서 인증 무시하기

이러한 예외에는 로그인 페이지와 몇 개의 다른 페이지가 포함됩니다. "기본"페이지 또는 원하는 모든 것을 제외하고는 모든 것이 잘 작동합니다. 분명히 내 사이트의 첫 페이지를보기 위해 사람들이 로그인하는 것을 원하지 않지만, 인증을 필요로하지 않는 방법을 알지 못합니다.

여기 내 시작 페이지 내 경로입니다 :

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

이야 내 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 } 

관련 부분은 물론, 이것이다 : 비록

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

를 I 그런 식으로 설정하면 내 환영 파로 갈려고 할 때 항상 로그인 화면으로 부팅됩니다. ge (그리고 그 의미는 http://myapp.com/app_dev.php이고, 반대는 http://myapp.com/app_dev.php/user/welcome입니다). 내가 뭘 놓치고 있니?

답변

0

기본 페이지에 대한 예외를 만든 다음 인증을받는 모든 자식을 설정해보십시오. 이렇게하면 기본 페이지를 제외하고 인증 뒤에 모든 것을 넣어야합니다. 그것은 또한 귀하의 예외와 함께 작동합니다.

- { path: ^/$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
- { path: ^/*, role: IS_AUTHENTICATED_REMEMBERED } 
+0

제게는 첫 번째 행이 나에게 해줄 것으로 보입니다. 감사! (두 줄을 모두 사용하면 작동하지 않습니다.) –