【问题标题】:How to Configure Spring Oauth2 for Multi tenant如何为多租户配置 Spring Oauth2
【发布时间】:2017-10-06 04:02:15
【问题描述】:

我目前正在使用 spring 和 oauth 开发多租户应用程序。每个租户都有不同的数据库。如果我的url是tenant1.xxx.com,那么它将使用tenant1数据库等。

我的请求已使用 AbstractRoutingDataSource 成功路由,但未通过身份验证。因此,当我询问访问令牌时,它仍然使用默认数据源。我认为我的问题出在 oauth2 配置中,该配置设置了 TokenStore 等数据源。

@Autowired
private DataSource dataSource;

@Bean
public TokenStore tokenStore() {
    return new JdbcTokenStore(dataSource);
}

令牌存储是否可以根据当前租户选择数据源?

【问题讨论】:

  • 您要选择数据源还是要在同一个数据库中保存多租户?
  • 我要选择数据源。所以每个租户都会为 oauth 使用不同的数据库
  • 同样是我的问题,你找到答案了吗?

标签: java spring oauth multi-tenant


【解决方案1】:

让我尝试给出解决方案

1) 如果您检查 JdbcTokenStore 内部的代码,那么我们会发现它在 JdbcTempaltes 内部使用,因此 JPA 或 Hibernate 路由在这种情况下将不起作用,您必须实现 org.springframework.security 解决方案的一部分.oauth2.provider.token.TokenStore 与 JPA 实现。

2) 如果您不喜欢解决方案 1,那么您也可以实现 AbstractRoutingDataSource 并在创建 TokenStore 时传递路由数据源。

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 2018-03-05
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2023-03-07
    • 2019-06-12
    • 2011-05-21
    • 1970-01-01
    相关资源
    最近更新 更多