HttpsUrlConnection ADFS аутентификация с cookie не работает - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь подключиться к веб-API, защищенному с помощью ADFS, из приложения для Android.Я успешно внедрил ADAL.После входа в ADFS я получаю токен и cookie.Используя этот файл cookie, я смогу запрашивать webapi, но меня всегда перенаправляют на страницу входа.Используя ту же строку cookie в Postman, я могу успешно запросить веб-API.Может ли кто-нибудь помочь мне понять, что происходит не так?Вот мой код:

try {
        CookieManager cookieManager = CookieManager.getInstance();
        String cookie = cookieManager.getCookie(AUTHORITY);

        URL url = new URL(urlString);
        HttpsURLConnection connection = (HttpsURLConnection) 
        url.openConnection();
        connection.addRequestProperty("Cookie", cookie);
        connection.setConnectTimeout(60000);
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.setUseCaches(false);
        connection.setInstanceFollowRedirects(false);

        OutputStreamWriter w = new OutputStreamWriter(connection.getOutputStream());
        w.write(contents);
        w.flush();

        InputStream istream = connection.getInputStream();
        String result = convertStreamToUTF8String(istream);

        return result;
} catch (Exception e) {
        e.printStackTrace();
        return null;
}

1 Ответ

0 голосов
/ 28 сентября 2018

Судя по всему, cookie с URL-адреса авторизации было недостаточно.Мне нужно было добавить еще один файл cookie (EdgeAccessCookie).Обнаружил это после тщательного изучения строки cookie в консоли Postman.

...