Spring Security: авторизуйтесь в двух или более веб-приложениях одновременно

Не могли бы вы дать мне подсказку, как авторизовать пользователя в нескольких веб-приложениях одновременно?

У меня есть:

  • УХО
    • WAR 1 (example.com/)
    • WAR 2 (example.com/shop/)
    • ...
    • WAR n (example.com/forum/)

Каждый WAR представляет собой приложение на основе Spring MVC (+Security). Пользователь аутентифицируется и авторизуется на WAR 1. Когда он переключается на любую другую WAR, ему нужно снова пройти аутентификацию. Как это обойти?


person L'sync    schedule 26.07.2012    source источник


Ответы (1)


вам следует использовать функцию CAS из весны безопасность для этого.

person Jigar Parekh    schedule 26.07.2012
comment
CAS великолепен, слишком тяжелое решение, я считаю, что это просто проблема конфигурации Spring Sequrity. Но воспользуюсь CAS, если не найду ничего проще. - person L'sync; 26.07.2012
comment
еще одно простое решение (хак!!), которое вы можете сохранить учетную информацию из одного приложения в файле cookie и заставить другое приложение автоматически входить в систему с помощью функции «запомнить меня». но вы должны позаботиться о прямом входе в систему - person Jigar Parekh; 26.07.2012
comment
Вау, интересное решение. Джигар, не нарушу ли я таким образом стандартную функцию «запомнить меня»? - person L'sync; 26.07.2012
comment
Да, потому что, когда вы явно записываете файл cookie из приложения1 и переходите к приложению2, это работает, но когда пользователь закрывает браузер и пытается напрямую открыть приложение2, он войдет в систему напрямую, даже если он не спрашивал у меня. Чтобы решить эту проблему, вы должны хранить дополнительную информацию в файлах cookie, например о том, что этот файл cookie создается Spring-Security или приложением. а затем расширьте процесс проверки подлинности с защитой Spring Security и проверьте поле cookie и explicty. - person Jigar Parekh; 26.07.2012
comment
Ok. Поэкспериментировав с некоторыми возможными решениями (в том числе с клапаном SSO Tomcat, OAuth для Spring Security, CAS, cookie-файлом Remember-me и внешним редиректором), CAS победил. Из всех плохих решений нужно было выбрать наименее худшее. - person L'sync; 22.08.2012