1

次のシナリオで問題があります:
私の Symfony2 アプリケーションでは、ログインしているユーザーがサードパーティのアプリケーション (TinyMCE のファイルネームャー) を開きます。SF2 アプリケーションからの資格情報でユーザーを承認する方法は?

remember_meユーザーがログインページをチェックすると、これは機能します:

//Bootstrap of 3rd party app
require_once('../../../app/bootstrap.php.cache');
require_once('../../../app/AppKernel.php');

$kernel = new AppKernel('prod', false);
$request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
$container = $kernel->getContainer();
if(false == $container->get('security.context')->isGranted('ROLE_USER'))
{
  $response = new \Symfony\Component\HttpFoundation\RedirectResponse('http://'.$request->getHost());
  return $response->send();
}

しかし、でログインしていない場合remember_me、ログイン ページにリダイレクトされます。

4

2 に答える 2

1

私の提案は、tinyMCE (サイト上の任意のサードパーティ アプリ) をファイアウォールの背後に配置することです。

#security.yml
firewalls:
    tiny_mce:
        pattern: ^/path/to/your/tinymce/dir
        http_basic: # Any authentication provider here
            realm: "Secured Demo Area"

ユーザーが tinymce を開くと、ブラウザーはhttp://example.com/path/to/your/tinymce/dir/tinymcefile.htmlを要求します。security.yml でこのパスについて言及しているため、symfony は認証のためにユーザーを必要とします。

アップデート

また、この問題は、開発環境にログインしてから、prod 環境または逆からパスにアクセスしようとしたときに発生する可能性があります。小さな mce では dev env を使用しているようです。以前にログインした環境を確認してください。

于 2013-11-20T15:51:35.203 に答える