All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.dongliu.cute.http.internal.HonoredCookieManager Maven / Gradle / Ivy

The newest version!
package net.dongliu.cute.http.internal;

import net.dongliu.commons.collection.Lists;
import net.dongliu.cute.http.HeaderNames;

import java.io.IOException;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import java.net.URI;
import java.util.List;
import java.util.Map;

/**
 * CookieManager that do not erase user setting cookies.
 */
public class HonoredCookieManager extends CookieManager {
    public HonoredCookieManager() {
        super();
    }

    public HonoredCookieManager(CookieStore store, CookiePolicy cookiePolicy) {
        super(store, cookiePolicy);
    }

    @Override
    public Map> get(URI uri, Map> requestHeaders) throws IOException {
        var headers = super.get(uri, requestHeaders);

        var userList = requestHeaders.getOrDefault(HeaderNames.COOKIE, List.of());
        var sessionList = headers.getOrDefault(HeaderNames.COOKIE, List.of());
        var cookieValues = Lists.concat(userList, sessionList);
        if (cookieValues.isEmpty()) {
            return Map.of();
        }
        return Map.of(HeaderNames.COOKIE, cookieValues);

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy