LittleProxy для манипулирования отправленным запросом и полученным ответом - PullRequest
0 голосов
/ 21 мая 2018

У нас очень ограниченные лицензии, поэтому возможно, что я могу получить те же данные из облачных приложений через некоторые утилиты / прокси-серверы, которые могут немного манипулировать нами перед сохранением их на нашем сервере приложений.

РассмотримВ этом случае у меня есть только 100 пользователей в GoogleApps, и я хочу получить пользовательские данные 10 000.

Можем ли мы перехватить весь проходящий запрос, например, https://localhost:8080/my-app

Теперь я хочу человека в серединето есть перехватчик, который может обмануть наш сервер приложений, что в системе Cloud присутствует N (например, 10 КБ) пользователей.

Поскольку мой Сервер приложений считает, что в системе Cloud еще много пользователей, он сохранитгенерирование запроса для следующего фрагмента пользовательских данных, пока мы не пересекаем число N

. Он также будет манипулировать данными, отправляемыми на сервер приложений, с инкрементным номером, например, User1, User2, ..., User100,и из следующего чанка User101, ..., User100000 и т. д.

Как я могу реализовать это, используя LittleProxy

https://github.com/adamfisk/LittleProxy

 HttpProxyServer server =
    DefaultHttpProxyServer.bootstrap()
        .withPort(8080)
        .withFiltersSource(new HttpFiltersSourceAdapter() {
            public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
                return new HttpFiltersAdapter(originalRequest) {
                    @Override
                    public HttpResponse clientToProxyRequest(HttpObject httpObject) {

               // ***** HERE I need HELP ******                                

                  }

                    @Override
                    public HttpObject serverToProxyResponse(HttpObject httpObject) {
                        // TODO: implement your filtering here
                        return httpObject;
                    }
                };
            }
        })
        .start();
...