2

用例:具有“单个用户名”的单个用户应该能够使用不同租户中可用的数据而无需重新登录。

预期流量:

  1. 用户“A”登录租户 1

  2. 他做了一些活动并且能够访问所有租户 1 的数据

  3. 他单击“切换租户”链接,之后他应该能够访问与租户 2 相关的所有数据

环境 :

  1. 圣杯 v2.1

  2. 弹簧安全核心 v1.2.7.3

  3. 多租户单数据库 v0.8.3

我正在使用以下自动生成的类

  1. SpringSecurityTenantRepository

  2. SpringSecurityTenantResolver

我在控制器中使用了以下代码,但它不起作用。

def switchedTenentId = params.switchedTenentId
if(switchedTenentId != null && !"".equals(switchedTenentId))
   {
     def currUser = springSecurityService.currentUser
     springSecurityService.currentUser.userTenantId = new Long(switchedTenentId)
   }

我用谷歌搜索但没有找到任何解决方案。我想知道逻辑、解决方案或任何示例代码。

谢谢

4

1 回答 1

1

这是我所做的:

User u = User.get(springSecurityService.currentUser.id)
u.userTenantId = params.switchedTenentId.toInteger()
u.save flush: true
springSecurityService.reauthenticate u.username

它就像一个魅力。

于 2015-06-05T10:44:18.303 回答