0

project/web/ に移動すると、アプリケーションはログイン用のフォームである te web/login にリダイレクトします。

しかし、承認されたとき、フォームを送信した後、アクセス拒否例外で project/web/ パスに戻りました。設定の何が問題なのか、わかりません。

ルーティング.yml

my_backend:
    resource: "@MyBackendBundle/Controller/"
    type:     annotation
    prefix:   /

fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

security.yml

security:
encoders:
    FOS\UserBundle\Model\UserInterface: sha512

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            login_path:                     /login
            use_forward:                    false
            check_path:                     /login_check
            post_only:                      true
            always_use_default_target_path: false
            default_target_path:            /
            target_path_parameter:          _target_path
            use_referer:                    false
            failure_path:                   null
            failure_forward:                false
            username_parameter:             _username
            password_parameter:             _password
            csrf_parameter:                 _csrf_token
            intention:                      authenticate
        logout:       true
        anonymous:    true
access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_ADMIN }
4

4 に答える 4

0

認証後、ROLE_ADMIN という別のロールが設定されます。サイトの app_dev.php バージョンを使用してください。アクセスが拒否されたページにアクセスすると、一番下にあなたの役割が表示されます。

于 2013-09-05T05:06:28.747 に答える
0

ROLE_ADMINユーザーに関連付けられていますか?

また、構成パラメーターを削除anonymousするか、少なくともデフォルト (「~」) に設定しようとしましたか? 私の理解が正しければ、アプリ全体で認証が必要ですが、/loginユーザー資格情報を入力する手段が提供されます。あれは正しいですか?

于 2013-09-04T21:35:54.853 に答える
0

答えてくれてありがとう。問題を解決しました。

ユーザーを作成して昇格させた後、彼は役割promote --super commandを取得しました。ROLE_SUPER_ADMINしかし、私のアプリのアクセス制御には、path: ^/, role: ROLE_ADMIN

だから私はそれを修正し、ROLE_SUPER_ADMINアクセス拒否例外なしで動作するようになりました。

しかし、この場合、もう1つ質問があります。今、私が app.php バージョンを使用すると、すべてがうまくいきます (/loginページでログインした後、リダイレクトされます/) が、app_dev.php バージョンでは、ログイン後web/_wdt/TOKENに空のページにリダイレクトされます。

于 2013-09-05T12:56:02.147 に答える