Кросс-источник iframe перезаписывает сессионный - PullRequest
0 голосов
/ 28 мая 2018

У меня есть Springboot / угловой компонент (это угловой компонент, который аутентифицируется службой безопасности Spring и загружает свои данные из Spring REST API).Этот подпружиненный / угловой компонент загружается в iframe приложения JAVA EE.

Они также загружаются в отдельных контекстах, localhost: 8080 и localhost: 7001 соответственно.

Проблема возникает всякий раз, когдакомпонент springboot / angular загружается и аутентифицируется в iframe, он перезаписывает Jsessionid, так что следующий HTTP-запрос, который я делаю в приложении JAVA EE, больше не является исходным Jsessionid и, следовательно, приводит к ошибке.

Как можно избежать перезаписи Jsessionid таким образом при использовании iframe перекрестного происхождения?

enter image description here

enter image description here

enter image description here

Код в localhost: 7001 (приложение JAVA EE), содержащий iframe: в основном, что происходит, я называю пользовательскимотправьте запрос в мой весенний контроллер processLogin, чтобы аутентифицировать пружинный / угловой компонент, и отобразить запрос в iframe.

<body>
<script>


    function sendForm(){

    var username = document.getElementById("sessionUser").value;
    var password = document.getElementById("sessionPw").value;

    var param = {};
    param['username'] = username;
    param['password'] = password;


    post('http://localhost:8080/processLogin', param );
    }
    </script>


         <iframe   id=menuFrame frameborder="0" style="overflow:hidden;" src=""></iframe>


</body>

1 Ответ

0 голосов
/ 28 мая 2018

На самом деле вы находитесь в двух разных контекстах, поэтому у вас есть два разных sessionId.Для того, чтобы поделиться своим sessionId, вы должны реализовать балансировку нагрузки или другие механизмы, которые позволяют совместно использовать сеансы на уровне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...