2014-01-10 4 views
1

안녕하세요, fosuserbundle을 사용하여 로그인 한 후 리디렉션 루프가 생깁니다. 어떻게 보이나요? 나는 그때 내가 심포니 profiller 로 볼 수 있습니다 날 로그 좋은 사용자 이름과 암호를 입력하고 프로파일 러는 This request redirects to http://web.dev/app_dev.php/admin/panel. 내가 거기에 갈 것을 말한다 그것은 더 이상이 곳 여기FosUserBundle 리디렉션 루프를 수정하는 방법

에서 인증 This request redirects to http://web.dev/app_dev.php/admin/login. 메신저 내 보안 말한다 :

난 내 config.yml에 정의했다 렸기 때문에
jms_security_extra: 
    expressions: true 

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     FOS\UserBundle\Model\UserInterface: sha512 
     MainBundle\Security\User\SsoUser: sha512 

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

    providers: 
     in_memory: 
      memory: 
       users: 
        "%api_username%": { password: "%api_password%", roles: [ 'ROLE_API' ] }  
     fos_userbundle: 
      id: fos_user.user_provider.username_email 
     ssoprovider: 
      id: sso_user_provider 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
     login: 
      pattern: ^/demo/secured/login$ 
      security: false 
     admin: 
      pattern: ^/admin/ 
      form_login: 
       provider: fos_userbundle 
       csrf_provider: form.csrf_provider 
       login_path:      fos_user_security_login 
       check_path:      fos_user_security_check 
       default_target_path:    admin_main 
      logout:  
       path: fos_user_security_logout 
       invalidate_session: true #https://github.com/symfony/symfony/issues/5868 
      anonymous: true 
      remember_me: 
       name:  "web_remember_me" 
       key:  "%secret%" 
       lifetime: 864000 # 10 days 
       path:  /admin 
     secured_area: 
      pattern: ^/(?!admin)    
      form_login: 
       login_path : main_user_logout 
      stateless: false 
      anonymous: false 
      simple_preauth: 
       authenticator: sso_authenticator 
      logout: 
       path: main_user_logout 
       invalidate_session: true 
       success_handler: sso_authentication_handler 
     api: 
      pattern: ^/api 
      stateless: true 
      http_basic: 
       realm: "Secured API Area" 

    access_control: 
     - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 
     - { path: ^/api/, roles: ROLE_API } 
     - { path: ^/, role: ROLE_USER } 
+0

당신은 사용자에게'ROLE_SUPER_ADMIN' 또는'ROLE_ADMIN'의 역할을 주어진 적이 있습니까? 생성 된 사용자는 달리 지정하지 않는 한 대개 'ROLE_USER' 역할 만합니다. – qooplmao

+0

ROLE_ADMIN을 사용하여 메소드를 오버라이드했습니다. secured_area를 추가하고 ssoprovider를 작성하면 문제가 나타납니다. 인증 된 관리자와 사용자 정의 인증기에 fosuserbundle을 사용합니다. – Vardius

+0

어떤 PHP 버전을 사용하고 있습니까? 이 문제는 PHP가 세션을 처리하는 방법과 관련된 버그 인 경우 매우 비슷합니다. – Flosculus

답변

0

이 coused했다 cookie_domain

설정 YML :

framework: 
    session: 
     cookie_domain: .%domain% 

그리고 난에 대한 추가했다 나 domain 구성 기억

security.yml :

admin: 
    remember_me: 
     domain: ".%domain%" 
관련 문제