2016-06-30 11 views
0

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

Включает ли плагин Spring безопасности для Grails эту настройку? Из того, что я понимаю, он всегда смотрит на источник данных по умолчанию для всех таблиц, связанных с проверкой подлинности, и сохраняет все токены в стандартном источнике данных.

Может кто-нибудь подтвердить это? Если плагин поддерживает несколько источников данных, как заставить его работать?

Наша окружающая среда: Grails отдых безопасность 2.4.4 Spring плагин 1.5.3 Весна ядро ​​безопасности 2.0-RC4 PostGreSQL 9.5

ответ

0

Grails поддерживает множественные источники данных:

http://docs.grails.org/2.4.4/guide/single.html#multipleDatasources

Для того, для настройки весеннего ядра безопасности, одного относительно простого варианта, было бы предоставление альтернативного сервиса UserDetailsService. (метод: loadUserByUsername (имя пользователя String) может быть настроен для этого) Используется DAOAuthenticationProvider для получения сведений о пользователе.

В этот момент вам, вероятно, потребуется получить доступ к большему количеству параметров из запроса, чтобы определить, какой источник данных для доступа. Таким образом, объект запроса может быть получен с использованием (для grails 2.x.x):

GrailsWebRequest webUtils = WebUtils.retrieveGrailsWebRequest() 
def request = webUtils.getCurrentRequest()