Может ли Spring поддерживать совместное использование нескольких приложений? - PullRequest
4 голосов
/ 13 января 2010

Поддерживает ли Spring Framework несколько приложений, использующих общую базу пользователей?

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

Идея такова, что-то похожее на членство в asp.net

это работает так, у вас может быть 10 веб-сайтов, каждый из которых использует API своего членства из одного источника данных. Безопасность (роли) и сопоставления сайтов осуществляются с помощью этого API членства.

Обычно, что происходит, вы выпускаете приложение. Затем вы выпускаете другое приложение, а затем ваши клиенты спрашивают, можете ли вы объединить пользователей и т. Д. Членство в asp.net решает эту проблему с самого начала.

обновление

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

Ответы [ 3 ]

3 голосов
/ 13 января 2010

Одна база данных может быть доступна нескольким приложениям, включая приложения Spring. Просто предоставьте доступ к этой базе данных каждому приложению, как правило, через источник данных (и да, приложение Java может использовать несколько источников данных).

[РЕДАКТИРОВАТЬ] Цель ОП на самом деле не ясна. Согласно некоторым комментариям, кажется, что вопрос может быть о SSO. В этом случае я бы посоветовал взглянуть на Spring Security или на реализацию CAS, например JA-SIG CAS или Spring Security с CAS .

PS: Я не хочу быть грубым, но вы должны научиться Как задавать вопросы «Умный путь» . Например, здесь вы должны указать свою цель, а не запрашивать конкретное решение (см. Опишите цель, а не шаг ). Во-первых, читатели не могут догадаться, что вы им не говорите, и это очень расстраивает (даже если я с радостью помогу). Во-вторых, вы получите гораздо лучшие ответы (и избежите разочарования с обеих сторон). Серьезно, прочитайте эту статью, она действительно того стоит.

1 голос
/ 13 января 2010

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

http://www.springsource.org/node/279

также гугл "весна кластера".

Вы можете поместить в структуру данных все, что угодно: информацию о пользователе, роли и т. Д. Кроме того, вы также можете предложить небольшое решение для кластеризации, где вы можете легко загружать сеансы баланса между несколькими экземплярами приложения.

0 голосов
/ 13 января 2010

Да ... вроде. Взгляните на SpringSecurity.

Я говорю «вроде», потому что Spring в настоящее время не предлагает готового решения проблемы управления учетными записями пользователей. Вы можете подключиться к существующему решению (например, LDAP) или использовать свой собственный «сервис данных пользователя» и инструменты для управления учетными записями.

Кроме того, у SpringSecurity пока нет (AFAIK) настоящего решения для единого входа.

Но, разумеется, после того как вы внедрили решение для аутентификации / контроля доступа на основе SpringSecurity, его будет легко применять на нескольких веб-сайтах с единой базой учетных записей пользователей ... или нет.

РЕДАКТИРОВАТЬ в ответ на комментарии, когда я говорю, что SpringSecurity + LDAP не является готовым решением для управления учетными записями пользователей, я имею в виду, что это не то, что (например, OP) может просто добавить в его Spring-based веб-приложения и развернуть в Tomcat / что угодно. Вместо этого ему пришлось бы

  1. исследуйте, как работает LDAP,
  2. выбор и реализация LDAP,
  3. установить реализацию LDAP,
  4. настроить и настроить LDAP по мере необходимости,
  5. интеграция с SpringSecurity,
  6. выяснить, как реализовать расширения для своих веб-приложений, чтобы удаленные пользователи могли самостоятельно регистрироваться, менять свои пароли, менять свои профили и так далее.

На мой взгляд SpringSecurity + LDAP - это хорошее решение, если у вас уже есть корпоративная настройка LDAP (или если у вас большой опыт работы с LDAP), но оно не очень хорошо соответствует требованию OP для простого решения.

...