0

我们正在使用跨区域分布的多个数据源。每个数据源旨在处理与该区域的所有用户相关的所有数据,包括与安全相关的数据,例如角色、令牌等。我不能在一个数据源中拥有所有与安全相关的信息。

Grails 的 Spring security rest 插件是否支持此设置?据我了解,它总是查看所有与身份验证相关的表的默认数据源,并将所有令牌单独存储在默认数据源中。

有人可以证实这一点吗?如果插件支持多个数据源,如何使其工作?

我们的环境:Grails 2.4.4 Spring security rest plugin 1.5.3 Spring security core 2.0-RC4 Postgresql 9.5

4

1 回答 1

0

Grails 支持多种数据源:

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

为了调整 Spring 安全核心,一个相对简单的选择是提供替代的 userDetailsS​​ervice。(方法: loadUserByUsername(String username)可以定制)DAOAuthenticationProvider 使用它来获取用户的详细信息。

此时,您可能需要从请求中访问更多参数,以确定要访问的数据源。因此,可以使用(对于 grails 2.xx)获取请求对象:

GrailsWebRequest webUtils = WebUtils.retrieveGrailsWebRequest()
def request = webUtils.getCurrentRequest()
于 2016-07-02T14:23:59.437 回答