Как правильно реализовать постоянный CookieStore без размышлений? - PullRequest
1 голос
/ 03 апреля 2019

По умолчанию JRE обеспечивает реализацию в памяти CookieStore , позволяющую CookieManager сохранять HttpCookies во время выполнения.В конечном итоге желательно сохранить файлы cookie и сеансы даже после завершения работы JVM.

Документация менеджера куки-файлов гласит:

CookieStore - это место, где хранится любой принятый куки-файл HTTP. Если не указано при создании, экземпляр CookieManager будет использовать внутреннюю памятьреализация. Или пользователь может реализовать его и указать CookieManager использовать его .

Сериализация HTTPCookie без отражения невозможна, поскольку поле maxAge - это продолжительность, определяющая время жизни файлов cookie всекунд с момента создания.Это значение имеет смысл только в сочетании с приватным полем whenCreated объекта, которое недоступно для любого метода получения.Каждое решение, которое я нашел до сих пор, игнорирует этот факт и не работает.

Мы могли бы реализовать наш собственный CookieHandler и заменить взамен стандартное HttpCookie на собственный экземпляр SerializedHttpCookie, но класс HttpCookieсамо по себе определено как окончательное, поэтому мы не можем расширять его и соблюдать контракт интерфейса.

Пока единственное «работающее» решение - это расширение CookieHandler и создание карты, чтобы отдельно экономить время создания.Но это просто хакерский и страшный сон для синхронизации всех ссылок.

Как «пользователь» может реализовать постоянное хранилище файлов cookie без размышлений?

Tldr : Jdk9 + не любит отражения.HttpCookies не может быть сериализован без него.Как вы постоянно сохраняете куки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...