Я развертываю приложение в Tomcat 8.5.Этот кот работает за прокси.Если я использую Eclipse, приложение работает правильно, но не в Tomcat.Я видел, что если я проходил аутентификацию с помощью веб-браузера, приложение работает нормально, пока аутентификация все еще остается.После истечения срока действия я должен снова предоставить учетные данные.
Я пытался предоставить эту информацию с помощью кода, а также добавил эти строки в catalina.bat:
http.proxyHost= proxy.myproxy.es
http.proxyPort = 8080
http.proxyUser = USERNAME
http.proxyPassword = PWD
System.setProperty("http.proxyHost", PROXY_SERVER);
System.setProperty("http.proxyPort", PROXY_PORT.toString());
System.setProperty("https.proxyHost", PROXY_SERVER);
System.setProperty("https.proxyPort", PROXY_PORT.toString());
System.setProperty("http.proxyUser", PROXY_USER);
System.setProperty("http.proxyPassword", PROXY_PASSWORD);
System.setProperty("http.proxySet", "true");
// AUTENTICAMOS EL PROXY
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
if (getRequestorType() == RequestorType.PROXY) {
String prot = getRequestingProtocol().toLowerCase();
String host = System.getProperty(prot + ".proxyHost", PROXY_SERVER);
String port = System.getProperty(prot + ".proxyPort",PROXY_PORT.toString());
String user = System.getProperty(prot + ".proxyUser", PROXY_USER);
String password = System.getProperty(prot + ".proxyPassword", PROXY_PASSWORD);
if (getRequestingHost().equalsIgnoreCase(host)) {
if (Integer.parseInt(port) == getRequestingPort()) {
return new PasswordAuthentication(user, password.toCharArray());
}
}
}
return null;
}
});
Мне нужноэта аутентификация для автоматического запуска.
РЕДАКТИРОВАТЬ: Этот прокси должен использоваться сторонним классом.Если я создаю новое соединение со случайным URL-адресом, таким как google.com, а затем делаю запрос со сторонним классом, он работает правильно, поэтому я предполагаю, что он не использует Authenticator.setDefault.Есть идеи о том, что происходит?