2016-07-05 21 views
2

歴史: 原題:のProdは、DEVが失敗した

アクセスは拒否されました...ユーザーが完全に認証されていません。 IS_AUTHENTICATED_ANONYMOUSLY

完全に機能2.8.8サイトは、新鮮な3.1.2のインストールに再建されたログイン。 symfonyがインストールされると、composer.jsonは2.8サイトからの依存関係を含むように変更されました。インストールは成功しました。 Dev環境は以下のように動作します。この問題に対する追加的な取り組みを得るために、環境を改善しました。 2.8 phpunitのテストで明らかにされなかったいくつかの非難を明らかにしました。それらがクリアされると3.1環境は2.8環境として動作しました。結論は、問題を引き起こす2.8と3.1の開発環境の間にいくつかの違いがあるということです。もちろん、私は途中で足のどこかに自分自身を撃ったかもしれない。

オリジナル質問:新鮮な3.1のインストールで

FOSUserBundle、/login/W、/ルートはdevのログエントリとループになる:

編集:サイト全体を確保することです。 access_control指示文{ path: ^/, role: ROLE_USER }は間違いではありません。このサイトはsymfony 2.8.8でうまく動作します。

編集#2:プロード環境が適切に動作することがわかります。デベロッパーはしません。 config_dev.ymlrouting_dev.ymlは、3.1のデフォルトのymlです。

request.INFO: Matched route "{route}". {"route":"fos_user_security_login" ... 
security.INFO: Populated the TokenStorage with an anonymous Token.... 
security.DEBUG: Access denied, the user is not fully authenticated; redirecting to authentication entry point 
security.DEBUG: Calling Authentication entry point.... 

Chromeは言う:

はあなたに何回も

ファイアウォールの変更が必要にリダイレクト?

docsからの基本的な、:、変更を加えた)のsecurity.yml

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: 
     algorithm: md5 
     ignore_case: true 
     encode_as_base64: false 
     iterations: 1 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
      logout:  true 
      anonymous: true 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/, role: ROLE_USER } 
+0

あなたはまだ/ register url経由でユーザーを登録しましたか? –

+0

匿名ユーザーとしてサイトにアクセスしようとすると上記のようになりますので、登録されることはありません。期待は、匿名ユーザーとして私はログインする必要があるということです。これはSymfony 2.8.8で構築されたアプリケーションブランチで起こります。 – geoB

+0

私は: 'security.yml'と全く同じものを追加するべきです。 – geoB

答えて

1

よりもむしろ答え問題が解決しないものを示す上記の議論を保持するように、私はこれを投稿してください。この問題を再現するために、作業2.8アプリケーションを3.1に移行する第2の取り組みを開始しました。今回は成功しました。上記の難点の原因を特定することはできません。

引き落とされた質問を考慮してください。

1

あなたのlogin_checkルートを確保するようだ - それゆえ、ユーザがログインフォームを送信すると、要求がキャッチされ、彼はにリダイレクトされます別のログインフォーム。このルールを追加

試してみてください。

access_control: 
    # ... 
    - { path: ^/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
+0

この追加での動作に変更はありません – geoB

関連する問題