Как мы можем перенаправить пользовательский сеанс из одного контекста весеннего приложения в другой?

Как мы можем перенаправить пользовательский сеанс из одного контекста весеннего приложения в другой? В основном у меня есть одно приложение Spring, представляющее веб-слой, и другое приложение Spring, представляющее уровень REST. Я хочу, чтобы при доступе веб-уровня к уровню REST сеанс, содержащий информацию о пользователе, был доступен из Интернета на уровне REST для аутентификации.

Пожалуйста, предложите.

Редактировать после получения первого ответа:
В настоящее время у нас есть веб-уровень, а также безопасность и все другие потоки. Мы собираемся представить уровень REST. Предполагается, что этот уровень REST будет вызываться существующим веб-уровнем и другими API. Мы не хотим вносить какие-либо изменения для веб-уровня, но в то же время необходимо разместить безопасность на уровне REST, которая должна работать и для веб-уровня при вызове служб REST.


person shaILU    schedule 26.10.2012    source источник


Ответы (1)


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

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

Однако я бы сказал вам, что если ваши приложения настолько тесно связаны, что им необходимо совместно использовать одно и то же точное состояние сеанса, то, возможно, их не следует разделять в первую очередь? Это пахнет ошибочными предположениями о дизайне и архитектуре.

person pap    schedule 26.10.2012