【问题标题】:HttpsUrlConnection ADFS authentication with cookie not working带有 cookie 的 HttpsUrlConnection ADFS 身份验证不起作用
【发布时间】:2026-01-13 07:55:01
【问题描述】:

我正在尝试从 Android 应用连接到使用 ADFS 保护的 Web API。我成功实施了 ADAL。登录 ADFS 后,我收到一个令牌和一个 cookie。使用该 cookie 我应该能够查询 webapi,但我总是被重定向到登录页面。在 Postman 中使用相同的 cookie 字符串,我可以成功查询 Web 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;
}

【问题讨论】:

    标签: cookies authorization adfs httpsurlconnection


    【解决方案1】:

    显然来自权威 url 的 cookie 是不够的。我需要添加另一个 cookie (EdgeAccessCookie)。在仔细检查 Postman 控制台中的 cookie 字符串后发现了这个。

    【讨论】:

      最近更新 更多