Фильтры Yii2 CORS допускают сбои только определенных исходных доменов - PullRequest
0 голосов
/ 03 января 2019

В моем поведении есть следующее

public function behaviors()
{
    $behaviors = parent::behaviors();
    $auth = $behaviors['authenticator'] = [
        'class' => CompositeAuth::className(),
        'authMethods' => [
            HttpBearerAuth::className(),
            QueryParamAuth::className(),
        ],
        'except' => ['login', 'check-token-validity', 'test-accounts'],
    ];
    unset($behaviors['authenticator']);

    $behaviors['corsFilter'] = [
        'class' => Cors::className(),
        'cors' => [
            // 'Origin' => ['*'],
            'Access-Control-Allow-Credentials' => true,

            'Origin' => static::allowedDomains(),

            'Access-Control-Request-Method' => ['POST', 'PUT'],

            'Access-Control-Expose-Headers' => ['Access_status_code'],
        ],
    ];
    $behaviors['verbs'] = [
        'class' => VerbFilter::className(),
        'actions' => [
            'delete' => ['POST', 'OPTIONS'],
        ],
    ];
    $behaviors['authenticator'] = $auth;
    //access
    return $behaviors;
}


    public static function allowedDomains()
{
    return [
        'http://test1.example.com',
        'http://test2.example.com',
    ];
}

Как и выше, я установил origin в качестве указанных выше статических доменов, но когда я проверил свой ответ на запрос ajax, я обнаружил, что origin заголовка ответаустановлен как Access-Control-Allow-Origin: *

Кроме того, я не смог ограничить методы доступа, несмотря на установку Access-Control-Request-Method

Что еще мне нужно добавить, чтобы это работало?

...