Импорт защищенного содержимого с использованием тега импорта jstl и корректная работа фильтра OSIV - PullRequest
1 голос
/ 17 декабря 2010

Кто-нибудь когда-нибудь пробовал следующее? (и был успешным)

В веб-приложении (A) я использую тег <c:import> для получения защищенного содержимого из другого веб-приложения (B), работающего на том же сервере приложений (WebSphere 7). Оба приложения используют Hibernate и фильтр OSIV Spring.

Глядя на источник тега импорта, я вижу, что стратегия заключается в том, что если URL-адрес является относительным, то он включает в себя содержимое, используя RequestDispatcher.include(). Если URL-адрес является абсолютным, код открывает URLConnection.

Поскольку мне необходимо отслеживать удаленного пользователя, я не могу сделать следующее:

<c:import url="http://host:port/B/getContent">

Doing

<c:import url="/getContent" context="/B">

вместо этого будет работать. Но при таком подходе я не обращаюсь к фильтру OSIV Spring, настроенному в B. Исходный (импортирующий) запрос в A проходит через фильтр OSIV, но он не действует в B. Следовательно, я получаю обычное сообщение «Нет сеанса или сеанс закрыт» ошибка для ленивых инициализаций сущностей.

Здесь я немного уловил 22, и мне интересно, реально ли то, что я пытаюсь сделать, в соответствии с моими требованиями.

Суть в том, что мне удалось получить то, что я хотел, путем агрегации моего контента напрямую с клиента с помощью Dojo (я использую SSO, чтобы идентифицировать пользователя), но я бы предпочел другой способ, если он было возможно.

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