我可以创建一个安全的,多租户网络与Grails的应用程序:如何使用Spring安全插件作为解析器将多租户插件配置为单租户?
- 设置弹簧安全插件,
- 建立多租户的插件通过多租户(安装和多租户弹簧安全)
更新Config.groovy中:
租户{ 模式= “多租户” resolver.type = “springSecurity” }
附加:整数userTenntId在用户域
- 添加域类租户组织
- 联营租户组织
- 编辑BootStrap.groovy中。
在多租户模式下一切正常,但如何使用mode =“singleTenant”?
不灵这种配置的声音:
租户{ 模式= “singleTenant” resolver.type = “springSecurity” }
编辑:
我尝试此配置:
tenant {
mode = "singleTenant"
resolver.type = "springSecurity"
datasourceResolver.type = "config"
dataSourceTenantMap {
t1 = "jdbc:hsqldb:file:custFoo"
t2 = "jdbc:hsqldb:file:custBar"
}
}
但我得到:
ERROR errors.GrailsExceptionResolver - Executing action [list] of controller [org.example.TicketController] caused exception: java.lang.StackOverflowError
和:
Caused by: java.lang.StackOverflowError
at org.grails.multitenant.springsecurity.SpringSecurityCurrentTenant.getTenantIdFromSpringSecurity(SpringSecurityCurrentTenant.groovy:50)
at org.grails.multitenant.springsecurity.SpringSecurityCurrentTenant.this$2$getTenantIdFromSpringSecurity(SpringSecurityCurrentTenant.groovy)
at org.grails.multitenant.springsecurity.SpringSecurityCurrentTenant$this$2$getTenantIdFromSpringSecurity.callCurrent(Unknown Source)
at org.grails.multitenant.springsecurity.SpringSecurityCurrentTenant.get(SpringSecurityCurrentTenant.groovy:41)
at com.infusion.tenant.spring.TenantBeanContainer.getBean(TenantBeanContainer.java:53)
at com.infusion.tenant.spring.TenantMethodInterceptor.invoke(TenantMethodInterceptor.java:32)
at $Proxy14.getConnection(Unknown Source)