簡體   English   中英

Symfony2:我可以對一個防火牆使用2種機制身份驗證嗎?

[英]Symfony2: Could I use 2 mechanism authentication for one firewall?

我解釋。 我有2個內核: AdminKernelApiKernel

api會話使用admin會話(在api/config/config.yml ):

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

security.yml很常見:

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
        ...

當我在http://localhost/admin/list ,將創建一個會話。 我想使用ajax調用對URL https://localhost/api/update/page進行一些操作。 瀏覽器顯示身份驗證框(http_basic),並且不使用管理會話。

我的問題是:如何告訴API管理會話是否存在,使用它否則顯示身份驗證框?

從Symfony2文檔中:

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

  1. 多個防火牆不共享安全上下文如果您使用多個防火牆,並且針對一個防火牆進行身份驗證,則不會自動針對任何其他防火牆進行身份驗證。 不同的防火牆就像不同的安全系統。 為此,您必須為不同的防火牆明確指定相同的防火牆上下文。 但是通常對於大多數應用程序而言,擁有一個主防火牆就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM