1

symfony2 アプリケーションでセキュリティ コンポーネントを使用しています。

特定の IP からのトラフィックに ROLE_ADMIN を割り当てる必要がある場合があります。匿名認証を使用して、後でサービスを介して匿名ユーザーに「ROLE_ADMIN」ロールを割り当てることを考えていました。セキュリティコンテキストからユーザーを取得できるため、これは機能しないと感じていますが、これは単なる文字列「anon」であり、完全なユーザーエンティティオブジェクトではありません。役割を割り当てる方法はありません。

多分誰かが私を彼の正しい方向に向けることができますか?

4

1 に答える 1

0

私には解決策があります。最初はロール ROLE_ADMIN を匿名ユーザーに割り当てたかったのですが、これは不可能です。動作するカスタム セキュリティ リスナー + ファクトリを作成しましたが、サービスまたはコントローラからセキュリティ コンテキストに新しいトークンを割り当てるだけです。

    $token = new \Symfony\Component\Security\Core\Authentication\Token\AnonymousToken('admin', 'admin', array('ROLE_ADMIN'));
    $this->get('security.context')->setToken($token);
于 2012-07-01T06:55:17.787 に答える