0

ようやく Symfony 2 でログインを適切に管理できるようになったと思いました。しかし、ログイン後に別のページにリダイレクトされると、システム プロファイラーは、ユーザーがログインしているが認証されていないことと、ロール: を返しますROLE_USER

ただし、ログインページに戻ると、ユーザーがログインしていて、認証されており、次の役割を持っていることが正しくわかります。ROLE_USER

最近 Symfony を使い始めたので、これがばかげた間違いであることを願っています。誰かがすでにこの問題に遭遇していることを願っていますか? 誰でも私を助けることができますか?

編集 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 }
4

1 に答える 1

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 }
于 2013-03-25T18:32:05.553 に答える