Je peux créer un endroit sûr, application web multi-locataire avec Grails par:Comment configurer le plugin multi-tenant en tant que single-locataire avec le plugin de sécurité Spring en tant que résolveur?
- configuration plug-in de sécurité du printemps,
- configuration plug-in multi-locataires (via multi-locataire installer et multi-locataire-printemps-sécurité)
mise à jour config.groovy:
locataire { mode = "mutualisée" resolver.type = "springSecurity" }
add: Entier userTenntId dans le domaine de l'utilisateur
- ajouter une classe de domaine pour l'organisation des locataires
- associé aux locataires Organisation
- Modifier BootStrap.groovy.
Tout fonctionne correctement en mode multi-tenant, mais comment utiliser mode = "singleTenant"?
Ce son de configuration ne fonctionne pas:
locataire { mode = "singleTenant" resolver.type = "springSecurity" }
Edit:
J'essaie cette config:
tenant {
mode = "singleTenant"
resolver.type = "springSecurity"
datasourceResolver.type = "config"
dataSourceTenantMap {
t1 = "jdbc:hsqldb:file:custFoo"
t2 = "jdbc:hsqldb:file:custBar"
}
}
Mais je reçois:
ERROR errors.GrailsExceptionResolver - Executing action [list] of controller [org.example.TicketController] caused exception: java.lang.StackOverflowError
et:
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)