2013-01-04 1 views
0

설명 드리겠습니다. 나는 2 커널을 가지고있다 : AdminKernelApiKernel. API에 대한Symfony2 : 방화벽 하나에 2 개의 메커니즘 인증을 사용할 수 있습니까?

세션은 (api/config/config.yml에서) 관리자의 세션을 사용

framework: 
    session: 
     save_path: %kernel.root_dir%/../admin/cache/%kernel.environment%/sessions 

security.yml 일반적이다 : 나는 http://localhost/admin/list 오전 때

security: 

    ...  
    firewalls: 
     ... 
     admin_login: 
      pattern: ^/admin/user/login$ 
      security: false 

     api: 
      pattern: ^/api 
      http_basic: ~ 

     admin: 
      pattern: ^/admin 
      form_login: 
       check_path: /admin/user/login_check 
       login_path: /admin/user/login 
       default_target_path: /admin 
      logout: 
       path: /admin/user/logout 
       target: /admin 
      remember_me: 
       key:  G>n[,O+^@F)j2_0^yFR_(|q<X~YtGD2:PV3zuktP0+/u*We]Ix$An X:m!#eeYEx 
       lifetime: 3600 
       path: /
       domain: ~ # Defaults to the current domain from $_SERVER 
     ... 

, 세션이 만들어집니다. 그리고 Ajax 호출을 사용하여 URL이 https://localhost/api/update/page 인 일부 작업을 수행하려고합니다. 브라우저는 인증 상자 (http_basic)를 표시하며 admin 세션을 사용하지 않습니다.

내 질문은 : API에 관리 세션이 있는지 알려주는 방법, 그렇지 않으면 인증 상자를 표시 하시겠습니까? Symfony2 문서에서

답변

0

:

http://symfony.com/doc/current/book/security.html

  1. 여러 방화벽을 사용하고 있고 하나 개의 방화벽에 대한 인증을하는 경우 다중 방화벽 보안 컨텍스트를 공유하지 않는, 당신은 인증되지 않습니다 다른 방화벽과 자동으로 연결됩니다. 다른 방화벽은 다른 보안 시스템과 같습니다. 이렇게하려면 방화벽마다 개의 방화벽에 대해 동일한 방화벽 컨텍스트를 명시 적으로 지정해야합니다. 그러나 대개 대부분의 응용 프로그램에서는 하나의 기본 방화벽 을 사용하는 것으로 충분합니다.
관련 문제