2014-11-25 2 views
4

У меня есть устаревшее приложение. Система входа в систему очень проста, так как она берет имя пользователя/пароль пользователя и запускает запрос базы данных и проверяет пользователя. Теперь я создал ссылку внутри этого унаследованного java-приложения, которое приземляется на полностью отдельную страницу панели инструментов приложения Java (написанную на Spring MVC). В настоящее время здесь применяется новое приложение Spring как полностью отдельное приложение и без проверки пользователя. Мне нужно что-то вроде, если кто-то щелкнет ссылку (он может получить доступ только к ссылке после входа в унаследованное приложение), она перенаправляет на новое приложение вместе с данными сеанса пользователя. Таким образом, пользователь также видит, что он вошел в новое приложение. И если он выйдет из нового приложения, я хочу, чтобы он также вышел из устаревшего приложения.Как передать данные сеанса зарегистрированного пользователя в другое приложение Java

Наследия APPLICATION- Простой сервлет JSP приложение Java на основе, работает на Tomcat 5.5 Нового приложения - Written в Spring MVC 4 и работает на коте 6

Оба кота контейнеров находятся на одном красной шляпе коробке.

Любая помощь будет высоко оценена. Спасибо

+0

Вы должны показать здесь, что вы сделали ... –

ответ

1

Вы можете попытаться разработать аутентификациюSuccessHandler для устаревшего приложения и установить его для обеспечения безопасности из SecurityContext в общей памяти между двумя приложениями при успешном завершении. При выходе из системы уничтожьте объект.

Для нового приложения создайте фильтр или обработчик, который для запроса проверяет, есть ли в запросе авторизация в общей памяти, связанная с SESSIONID. Если его больше нет, заставьте пружину разрушить эту сессию, выбирая вас.

AuthenticationSuccessHandler: http://docs.spring.io/autorepo/docs/spring-security/3.1.7.RELEASE/apidocs/org/springframework/security/web/authentication/AuthenticationSuccessHandler.html

SecurityContent: http://docs.spring.io/autorepo/docs/spring-security/3.2.2.RELEASE/apidocs/org/springframework/security/core/context/SecurityContext.html

разделяемой памяти: http://hazelcast.com/

Конечно, это лишь хрупкая связь между двумя приложениями и, возможно, вы должны думать о переоборудовании устаревших приложений в способ, которым он лучше всего служит, является целью CAS, например, выставлять веб-сервис для входа в систему и иметь обработчик входа для нового приложения, вызывающего веб-сервис для попытки входа в систему, и решить, используя ответ, r для входа в систему пользователя или нет. Таким образом, у вас есть только один сеанс (в новом приложении), и вы можете значительно упростить устаревшее приложение (если необходимо, а не заблокировано другими ограничениями).

Это лишь изменение мнения и без более подробного рассмотрения вашей заявки, это может оказаться полезным или полный мусор :)

+0

Спасибо за ваш ответ, но я еще не попробовал с вашим решением. Я дам вам знать. Еще раз спасибо. – Ani

+0

Привет Адриан и Ален .. Просто проблема .. Кажется, я не могу или не должен ничего менять в устаревшем приложении, так как это решение для автоматической передачи сеанса не будет постоянным решением. Я думал о том, что, если я могу передать данные сеанса в URL-адрес, чтобы весь URL был зашифрован, а затем получить зашифрованные данные в приложении весны и расшифровать URL-адрес, чтобы получить данные сеанса. Является ли это возможным? Если это так, можете ли вы мне посоветовать, как это сделать, как мне кажется, это может быть проще решить мою конкретную проблему. В очередной раз благодарим за помощь. – Ani

0

Допустим, ваш подключены на сервере A. На сервере B, у вас есть Spring MVC приложение.

Вы должны разработать на сервере B веб-сервис, создающий защищенный токен, зашифровать его с помощью симметрийного алгоритма. Отправка маркера на сервер A. Сервер A затем вызывает другой веб-сервис на сервере B, который использует токен для аутентификации. Когда вы будете использовать токен для входа в сервер A, можете расшифровать его, чтобы убедиться, что он был выпущен ранее.

Вы можете найти различные документы и examples в Интернете для аутентификации на токенах.

+0

Спасибо за ваш ответ, но я еще не пытался с вашим решением. Я дам вам знать. Еще раз спасибо. – Ani

+0

Хорошо, удачи;) –

Смежные вопросы