Java отправляет POST-данные на PHP-сервер, заблокированный методом accessRules

Я размещаю некоторые данные на PHP-сервер в рамках Yii. Логин работает нормально. что означает, что мои данные были точно отправлены на сервер.

но после входа мои последующие запросы отклоняются accessRules метод на сервере и я получаю страницу входа в ответ.

Это функция accessRules в PHP. Где egineering нормальные пользователи кроме администраторов.

public function accessRules()
    {
        return array(

            array('allow',  // allow all users to perform 'index' and 'view' actions
                'actions'=>array('index','view','AssignedUsers',),
                'roles'=>array('admin', 'engineering'),
                //'users'=>array('*'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update','userReport','userNewReport',),
                'roles'=>array('admin'),
                //'users'=>array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' action
                'actions'=>array('admin'),
                'roles'=>array('admin', 'engineering'),
            ),
            array('allow', // allow admin user to perform 'delete' action
                'actions'=>array('delete'),
                'roles'=>array('admin', 'admin'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

но я получаю отказ от сервера.

это запрос JAVA

String content ="user=" + URLEncoder.encode(userId,encoding) +
"&apiKey=" + URLEncoder.encode(apiKey,encoding);  

этот контент используется в последующем с URL.

        connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setUseCaches (false);
        connection.setRequestProperty("Content-length",String.valueOf (content.length())); 
        connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

        DataOutputStream printout = new DataOutputStream (connection.getOutputStream ());

        System.out.println(url+",Content = "+content);

        printout.writeBytes (content);
        printout.flush ();
        printout.close ();

1 ответ

Решение

Отправить куки.

Когда вы входите в систему... На сервере будет создан сеанс, а идентификатор сеанса будет отправлен в виде файлов cookie в заголовке ответа http.

Вы должны поймать эти куки-файлы из ответа при входе в систему и продолжать отправлять их при последующих запросах.

Я только что гуглил и нашел этот пример: как получить куки из ответа и как отправить его в запросе

Другие вопросы по тегам