0

symfony セキュリティ + fos ユーザー バンドルに問題がありました。私の問題を再現した人を見つけることができませんでした。同様の問題だけですが、解決策は機能していません。/ を含むすべてのページは、登録/リセット/ログイン URL を除いて保護する必要があります。

/login に移動すると、登録ファイアウォールに追加しない限り、URL は「保護」されます。これは、ログインしようとするまで機能し、メインのファイアウォールにログイン パスを追加する必要があると表示されます。

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    registration:
        pattern: ^/(login|register|resetting)
        security: false

    main:
        pattern: ^/
        http_basic: ~
        form_login:
            provider:       fos_userbundle
            csrf_provider:  security.csrf.token_manager
        logout:             true
        anonymous:          true

access_control:
    - { path: ^/(_(profiler|wdt)|css|images|js), role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_USER }
4

1 に答える 1

0

^login のパターンを ^login$ に制限して、引き続き login_check がメインのファイアウォールに渡されるように修正しました。

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern: ^/login$
        security: false

    registration:
        pattern: ^/(register|resetting)
        security: false

    main:
        pattern: ^/
        http_basic: ~
        form_login:
            provider:       fos_userbundle
            csrf_provider:  security.csrf.token_manager
        logout:             true
        anonymous:          true

access_control:
    - { path: ^/(_(profiler|wdt)|css|images|js), role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_USER }
于 2015-09-17T13:43:16.850 に答える