Http сессия в littleproxy

Как мы обрабатываем сессию http в littleproxy? Я читал о нескольких подходах, в которых можно использовать HTTP-куки, а другой - заголовки HTTP-аутентификации.

Поддерживает ли littleproxy обработку файлов cookie или заголовок аутентификации и отправляет ответ 401 на запрос клиенту браузера?

С другой стороны, подход с использованием файлов cookie зависит от веб-сервера. Пока веб-сервер не выделит его, он не будет доступен пользователю / браузеру.

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

1 ответ

Решение

Я думаю, что использование файлов cookie - хорошая идея, так как они будут сохраняться браузером и отправляться обратно в прокси-сервер с каждым запросом.

В основном вам нужно будет добавить фильтр и проверить / вставить файлы cookie по мере необходимости:

    return new HttpFiltersSourceAdapter() {
        @Override
        public HttpFilters filterRequest(HttpRequest originalRequest) {
            return new HttpFiltersAdapter(originalRequest) {

                @Override
                public HttpResponse requestPre(HttpObject httpObject) {
                    if (httpObject instanceof HttpRequest) {
                        // check the cookie here
                    }
                    return super.requestPre(httpObject);
                }

                @Override
                public HttpObject responsePre(HttpObject httpObject) {
                    if (httpObject instanceof HttpResponse) {
                        HttpResponse response = (HttpResponse) httpObject;
                        response.headers().set(HttpHeaders.Names.SET_COOKIE, ServerCookieEncoder.encode("Content", "Some"));
                        return response;
                    } 

                    return httpObject;
                }
            };
        }
    };
Другие вопросы по тегам