Cookie теряется, если я объявляю свой обработчик файлов по умолчанию перед открытием соединения - PullRequest
1 голос
/ 02 мая 2019

Итак, я изучал запросы http и куки.Может кто-нибудь объяснить мне, почему это работает

public void authenticate() throws Exception {        
        // login information
        final String username = "123";
        final String password = "123";
        final String urlParameters = "login_username=" + username + "&login_password=" + password + "&login=%E2%F5%EE%E4";

        // initializing
        byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
        String loginURL = "doesn't matter";
        HttpsURLConnection con = (HttpsURLConnection) new URL(loginURL).openConnection();

        java.net.CookieHandler.setDefault(cm);
        cm.setCookiePolicy(CookiePolicy.ACCEPT_ALL);

        addHTTPSPOSTRequestParameters(con, postData.length);
        ...

А это не так?

public void authenticate() throws Exception {        
        java.net.CookieHandler.setDefault(cm);
        cm.setCookiePolicy(CookiePolicy.ACCEPT_ALL);

        // login information
        final String username = "123";
        final String password = "123";
        final String urlParameters = "login_username=" + username + "&login_password=" + password + "&login=%E2%F5%EE%E4";

        // initializing
        byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
        String loginURL = "doesnt matter";
        HttpsURLConnection con = (HttpsURLConnection) new URL(loginURL).openConnection();

        addHTTPSPOSTRequestParameters(con, postData.length);
        ...

Я пытаюсь пройти проверку подлинности на веб-странице, используя сообщение.Кажется, что всякий раз, когда я сначала устанавливаю обработчик файлов cookie, первый возвращенный файл cookie проглатывается.Я получаю аутентификацию = HTTP 302 - но у меня нет cookie сеанса в запросе.

Вот ответы http, которые я получаю:

Referrer-Policy: same-origin
Transfer-Encoding: chunked
Server: nginx
Connection: keep-alive
Set-Cookie: bb_session=xxxxxxxxxxxxxxxxxxxxxxxxx; expires=Fri, 27-Apr-2029 15:47:32 GMT; Max-Age=315360000; path=/forum/; domain=.webpage.org; secure; HttpOnly, bb_ssl=1; expires=Fri, 27-Apr-2029 15:47:32 GMT; Max-Age=315360000; path=/forum/; domain=.webpage.org
X-BB-ID: rto
Date: Tue, 30 Apr 2019 15:47:32 GMT
Location: https://webpage.org/123/123.php
Content-Type: text/html; charset=cp1251

Это происходит с первым примером.Если я использую код из второго блока, он дает следующий результат.

Referrer-Policy: same-origin
Transfer-Encoding: chunked
Server: nginx
Connection: keep-alive
Set-Cookie: , bb_ssl=1; expires=Sun, 29-Apr-2029 14:50:23 GMT; Max-Age=315360000; path=/forum/; domain=.webpage.org
X-BB-ID: rto
Date: Thu, 02 May 2019 14:50:23 GMT
Location: https://webpage.org/123/123.php
Content-Type: text/html; charset=cp1251
...