Я понимаю ваши настройки следующим образом:
Браузер <- HTTP / HTTPS через Интернет -> SpringBoot
Веб-страница, отображаемая в браузере, должна взаимодействовать с локальным настольным приложением.
Решение состоит в том, чтобы установить HTTP-соединение между вашей веб-страницей и настольным приложением следующим образом:
- ваше настольное приложение должно включать встроенный контейнер сервлета, как, например, undertow , который привязывает сокет сервера к 127.0.0.1:yourPort
- для встроенного контейнера сервлета требуется CORS Filter , поскольку источник веб-страницы, безусловно, отличается от 127.0.0.1.
- Веб-страница просто открывает соединение с помощью XMLHttpRequest, например,
var req = new XMLHTTPRequest();
req.open("POST", "<a href="http://127.0.0.1:yourPort" rel="nofollow noreferrer">http://127.0.0.1:yourPort</a>");
req.setRequestHeader("content-type", "application/x-www-form-urlencoded");
req.send("payload="+ myPayload);
Когда браузер установил HTTPS-соединение с сервером SpringBoot, у вас есть проблема с тем, что браузер может отображать «Предупреждение о смешанном контенте», когда защищенный веб-контекст (ваша веб-страница) обращается к ресурсу через HTTP.
К счастью, в последнее время современные браузеры, такие как Chrome, Firefox, Edge и Safari, реализуют рабочий проект W3C Secure Contexts и, таким образом, считают доступ к 127.0.0.1 потенциально надежным: предупреждение о смешанном контенте отсутствует.
Тем не менее, если вы вводите это в эксплуатацию, вы должны знать, что ваше настольное приложение теперь уязвимо для атак XSS.