2013-03-20 1 views
0

마침내 Symfony 2로 로그인을 올바르게 관리 할 수 ​​있다고 생각했지만 로그인 후 다른 페이지로 리디렉션되면 시스템 정보보기에서 사용자가 기록되었음을 알려줍니다 인증되었지만 역할은 다음과 같습니다. ROLE_USER.시스템 프로파일 러가 로그인했지만 인증되지 않은 경우

나는 로그인 페이지로 돌아 가면,하지만, 내가 제대로 사용자가 로그인되어, 인증 및 역할을 가지고있다 : ROLE_USER

내가 최근 심포니를 사용하기 시작하기 때문에 바보 같은 실수 희망을. 누군가이 문제가 이미 발생했기를 바라십니까? 누구든지 나를 도울 수 있습니까?

편집 1 : 이 내 security.yml

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
    encoders: 
     Wearplay\UserBundle\Entity\User: 
      algorithm:  sha1 
      encode_as_base64: false 
      iterations:  1 

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

    providers: 
     user: 
      entity: { class: WearplayUserBundle:User } 

    firewalls: 
     main: 
      pattern: ^/ 
      provider: user 
      form_login: 
       check_path: login_check 
       login_path: login 
       default_target_path: /home 
      anonymous: true 
      remember_me: 
       key:  "%secret%" 
       lifetime: 2232000 
       path: /
       domain: ~ 
      logout: 
       path: /logout 
       target: /home 

     #secured_area: 
     # provider: user 
     # pattern: ^/ 
     # form_login: 
     #  check_path: login_check 
     #  login_path: login 
     #  default_target_path: home 
     # anonymous: ~ 

    access_control: 
     - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http } 
     #- { path: ^/logout, roles: IS_AUTHENTICATED_FULLY, requires_channel: https } 
     #- { path: ^/home, roles: ROLE_USER, requires_channel: https } 
     # 
     # You must uncomment the two following rules to restrict access to paths 
     # starting with the /_internal prefix to only localhost 
     #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 } 
     #- { path: ^/_internal/secure, roles: ROLE_NO_ACCESS } 
+0

당신은'IS_AUTHENTICATED_FULLY'과'IS_AUTHENTICATED_REMEMBERED' 사이 심포니의 규칙을 확인 했습니까? [그것에 관한 일부 문서] (http://symfony.com/doc/current/cookbook/security/remember_me.html#forcing-the-user-to-re-authenticate-before-accessing-certain-resources) –

+0

@ThomasPotaire 감사합니다. . 그러나 일단 로그인하고 사용자가 ROLE_USER 역할을 얻으면 자동으로 IS_AUTHENTICATED_FULLY가 표시됩니까? –

+0

'IS_AUTHENTICATED_FULLY'는 사용자가 탭/창을 닫을 때까지 부여됩니다 (아마 그보다 복잡하지만 아이디어를 얻을 수 있습니다). –

답변

0

시도입니다 :

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
    encoders: 
     Wearplay\UserBundle\Entity\User: 
      algorithm:  sha1 
      encode_as_base64: false 
      iterations:  1 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 

    providers: 
     user: 
      entity: { class: WearplayUserBundle:User } 

    firewalls: 
     login_firewall: 
      pattern: ^/login$ 
      anonymous: ~ 
     main_firewall: 
      pattern: ^/ 
      provider: user 
      form_login: 
       check_path: /login_check 
       login_path: /login 
       default_target_path: /home 
      remember_me: 
       key:  "%secret%" 
       lifetime: 2232000 
       path: /
       domain: ~ 
      logout: 
       path: /logout 
       target: /home 

    access_control: 
     - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http } 
     - { path: ^/, roles: ROLE_USER, requires_channel:https }