SpringMVCとSpringSecurityを使用するアプリケーションがあります。
アプリケーションプロジェクトには、ejbsとWebアプリケーションがあります。
ユーザー用の共通データベースとユーザーグループごとの1つのデータベースがあります。
したがって、ユーザーが認証するとき、Spring Securityは共通データベースを使用してログイン/パスワードをチェックし、コントローラーがejbを呼び出すと、エンティティマネージャーはユーザーのグループデータベースに接続します。
私の目標は、ユーザー/グループとそれに関連するデータベースをその場で作成することです。
例 :
共通データベースlocalhost:3306database_schema1には
USERS
----------------------
| NAME | GROUP_ID |
----------------------
| Pierre | 1 |
| Paul | 1 |
| Jacques | 2 |
----------------------
GROUPS
------------------------------------------
| ID | URL | SCHEMA_NAME |
------------------------------------------
| 1 | localhost:3307 | database_schema1 |
| 2 | localhost:3308 | database_schema1 |
------------------------------------------
Pierreが認証すると、ホームページはejbを呼び出します。このejbには、スキーマdatabase_schema1を使用してグループ1データベースlocalhost:3307に接続する必要があるエンティティマネージャーがあります。
Jacquesが認証する場合は、グループ2データベースである必要があります。
プロジェクトをビルドするときにわからない特定のデータベースを使用するようにエンティティマネージャーに指示するにはどうすればよいですか?
つまり、ejbでpersistence.xmlを使用したくないのですが、認証されたユーザーに応じてエンティティマネージャーを動的に初期化します。
Persistence.createEntityManagerFactory()はこのコンテキストで機能しますか?もしそうなら、それは最良の解決策ですか?