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

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

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

Это функция accessRules в PHP. Где инженеры - это обычные пользователи, кроме админов.

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 ();

person Shashank Degloorkar    schedule 27.09.2012    source источник
comment
Почему тег Swing в этом вопросе?   -  person Robin    schedule 27.09.2012
comment
@ Робин, он любит танцевать во время кодирования.   -  person moonwave99    schedule 27.09.2012
comment
потому что я использую Java Swing, но очевидно...   -  person Shashank Degloorkar    schedule 27.09.2012
comment
Возможно, вы используете Swing где-то в своем проекте, но какое это имеет отношение к этому вопросу?   -  person Robin    schedule 27.09.2012


Ответы (1)


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

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

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

Я только что погуглил и нашел этот пример: Как получить файлы cookie из ответа и Как отправить их в запросе

person SuVeRa    schedule 28.09.2012