Spring Hibernate Multitenacy

0

Witam,
próbuję ogarnąć multitenacy w Springu z Hibernate. Wiem, że istnieją ogólnie trzy podejścia:

  • tenat per baza
  • tenat per schema
  • discriminator w tabeli

Jestem w początkowej fazie projektu i na początku chciałem użyć wzorca "discriminator w tabeli". Do tego celu chciałem zastosować filtry z hibernate'a i pobierać dane z JWT (z Spring Security Context), a następnie uzupełniać parametr filtra danymi z JWT. Czy ktoś może ma pomysł jak to pogodzić? Z tego co patrzyłem to Hibernate ma jakieś Interceptory, ale czy tam będzie dostęp do Spring Security? Już mi się skończyły pomysły jak to rozwiązać? Pomocy!!!

Rozważałem jeszcze pozostałe dwa podejścia, jednak pytanie jak np. zarządzać zmianami w bazie? Tenaci będą tworzeni dynamicznie, więc też musiałaby być jakaś główna baza danych, gdzie byłby trzymane informacji do połączeń z bazami tenatów. Jak wygląda taki DevOps w przypadku podejść "tenat per db" i "tenat per schema"?

0

Do kontekstu security masz dostęp praktycznie wszędzie tak długo jak jesteś na tym samym wątku (ale i to da się obejść, są stosowne rozszerzenia), ponieważ jest trzymany w thread local - to nie powinno być problemem. Ważniejsza jest decyzja faktycznie które rozwiązanie wybrać i tutaj niestety odpowiedz „to zależy”. Ja spotkałem się z podejściem (1) - każdy klient miał dedykowana bazę + baza „konfiguracyjna” - tutaj problemy wynikające z shardowania. Podejście (3) wydaje mi się nieskalowalne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1