2014-01-17 4 views
0

У меня есть два приложения Grails, которые имеют аналогичную логику, используют две разные базы данных, но для них одинаковые пользователи, userroles, userrights и все таблицы соединений, которые должны быть одинаковыми между собой. Например, если пользователь входит в первое приложение и изменяет свой пароль, это изменение потребуется обновить во второй базе данных приложений.Grails REST User Authentication

Мой вопрос: есть ли способ сделать это с помощью RESTful API? Есть ли передовая практика для этой реализации? Я понимаю, что лучшим вариантом будет LDAP или какой-либо другой сервис внешних каталогов, но я хотел посмотреть, есть ли безопасный способ сделать это с помощью RESTful API.

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

Было бы неплохо иметь возможность использовать уже настроенные таблицы для этих двух приложений. Проблема с использованием LDAP-сервера заключалась бы в том, что флот других приложений должен быть перенесен на использование LDAP-сервера для аутентификации. Это приведет к довольно большому архитектурному изменению набора приложений.

+0

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

ответ

1

Как получить два источника данных в каждом из двух приложений, один для отдельной логики приложения и один для пользователей. И есть ли у пользователей datasource в обоих приложениях одна и та же база данных?

Редактировать: вы можете также группировать классы домена, связанные с пользователем, в плагине, и оба приложения импортируют один и тот же плагин, чтобы синхронизировать классы.