Jetty Transparent Proxy - добавить информацию о пользователе
Я успешно создал прозрачный прокси, используя Jetty 9 со следующим кодом сервлета:
public class ProxyRewriteServlet extends ProxyServlet.Transparent {
private static final String HOST = "192.168.1.20" // 'hidden' server
private static final int PORT = 28000 // the port the server is listening to
@Override
protected URI rewriteURI(HttpServletRequest request) {
URIBuilder builder = new URIBuilder()
.setScheme("http").setHost(HOST).setPort(PORT)
.setPath(request.getRequestURI());
return builder.build();
}
Прокси-сервер пересылается на известный сервер (192.168.1.20), который требует базовой аутентификации. Прямой доступ к серверу с адресом http://admin:password@192.168.1.20/path
работает. Доступ через прокси http://admin:password@proxy.from.above/path
работает так же.
Тем не менее, доступ к более http://proxy.from.above/path
не работает из-за аутентификации. Поэтому я дополняю rewriteURI()
со следующим:
builder.setUserInfo("admin", "password");
К сожалению, это не имеет никакого эффекта, и сервер просит браузер ввести учетные данные.
Есть ли правильный способ ввести информацию о пользователе на прокси? Или они обязательно должны прийти от клиента?