у меня есть проект, который использует RESTEasy Объект REST
jar содержит файл с именем resteasy-client.js этот файл добавляется на веб-страницы, что упрощает создание HTTP-вызовов. есть ошибка! как только файл отправлен клиенту, есть строка, добавляемая сервером в: JSAPIWriter.java в методе: writeJavaScript
writer.println("REST.apiURL = '" + uri + "';");
в https этот URL-адрес создает неправильный URL-адрес, который является HTTP! а не HTTPS! это из источника на моем веб-сайте:
REST.apiURL = 'http://proXXXXXXXX'; as you can see the protocol is not correct. i am looking for a way to over ride this issue, without doing changes to the original code file. Thanks for the help.
Обновить эта проблема возникает из-за того, что подача отстает от FW, и HTTPS отправляется на сервер как HTTP вместо https вопрос в том, как я могу передать этот JSAPI, чтобы его протокол был https (я могу прочитать его из заголовков)
я не могу его изменить, так как это часть Jar, и я ищу способ каким-то образом отменить его ...
Я думаю, вы переопределите это, просто поместив это в свой код REST.apiURL = "https://yourdomain.com";
@JGlass Я обновил источник проблемы, теперь проблема заключается в том, как передать HTTPS в инициализацию JSAPI.
Так это Клиент-> HTTP-> Брандмауэр-> HTTPS-> Сервер приложений?
HTTPS-> FW-> HTTP-> СЕРВЕР ПРИЛОЖЕНИЙ
Может быть, ваш Info Sec (информационная безопасность) изменит его на HTTPS-> FW -> * HTTP * -> APPLICATION SERVER? Вам понадобится сертификат SSL, используемый брандмауэром. Это, вероятно, облегчило бы вашу проблему, обычно это называется SSL Pass Through в терминах FW. Это также добавляет безопасности, поскольку это HTTPS от конца до конца.
у меня уже есть заголовок "X-Forwarded-Proto"
Это не похоже на то, что это повлияет на сервлет каким-либо образом (x-forwarded-headers) [docs.aws.amazon.com/elasticloadbalanci ng / latest / classic /… каким-либо образом, кроме того, что вы сможете получить доступ к этому заголовку и ответить соответствующим образом ... Нет шансов, что Info Sec сделает протокол HTTPS? Не уверен, насколько велика ваша компания, но обычно для команды Info Sec это изменение занимает всего одну минуту.
это баланс нагрузки Amazon AWS docs.aws.amazon.com/elasticloadbalancing/latest/classic/…, JSAPI изначально не предназначался для чтения из определенного заголовка, например, для проверки протокола или для этого была задана какая-либо конфигурация.
Можете ли вы настроить «экземпляр» (экземпляр вашего сервера) как HTTPS на порт 8443 вместо использования только HTTP? elb создать https ssl load balancer. Если вы не можете, то я думаю, что работа будет заключаться в получении экземпляра базового сервлета в вашем коде и изменении URL-адреса, если возможно, на HTTPS в ответе - похоже, что это может не сработать, хотя, поскольку это java-скрипт, который заканчивается как HTTP
Кроме того, такая внешность - ваша проблема, не так ли? javascript google transliterate api не обслуживается через https
Я могу изменить FW-> HTTP на FW-> HTTPS, но сначала меня интересовало, как я могу изменить его на уровне Java
Да, я не уверен - но вы могли бы пойти более безопасным путем ;-)




Я сделал расширение до основного класса jar, изменил web.xml, указывающий на новый класс, который я создал, и прочитал заголовки из x-forward-proto, чтобы получить правильный протокол.
И, просто проверка работоспособности - вы ели указание https в браузере при тестировании? Ваша ссылка также показывает:
// Change the base URL used by the API:REST.apiURL = "http://api.service.com";вы пытались добавить это и изменить URL-адрес наREST.apiURL = "https://yourdomain.com";