用于grails和多个数据源的spring security rest插件

时间:2016-06-30 13:59:02

标签: grails spring-security spring-security-rest

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

Grails的Spring安全休息插件是否支持此设置?根据我的理解,它总是查看所有与身份验证相关的表的默认数据源,并仅在默认数据源中存储所有令牌。

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

我们的环境: Grails 2.4.4 Spring安全休息插件1.5.3 Spring安全核心2.0-RC4 Postgresql 9.5

1 个答案:

答案 0 :(得分:0)

Grails支持多个数据源:

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

为了调整Spring安全核心,一个相对容易的选择,就是提供另一个userDetailsS​​ervice。 (方法: loadUserByUsername(String username)可以自定义来执行此操作) DAOAuthenticationProvider正在使用它来获取用户的详细信息。

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

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