私は、すべてのDB対話ニーズにHibernateを使用するSpring MVC上に構築されたアプリケーションを持っています。 LDAPインフラストラクチャを使用して、名前や電子メールなどの基本的なユーザーデータや認証や承認の必要性など、ユーザー情報を管理するアプリケーションを更新する必要があります。Spring Security、Spring LDAP、およびHibernateでユーザー情報を処理する方法は?
これまではすべてが1つのスポット(DB)になっていたため、Hibernateは必要なクエリで開始するときに必要に応じて情報の取得を管理しているため、レポートはすべてかなり簡単です。 Hibernateはデータを遅延ロードするので、ユーザーの名前などを取得するのは非常に簡単です。
ユーザ情報をLDAPで動かすことを望んでいるため、Hibernateはユーザのデータを管理しないため、その場でユーザ情報を埋め込むことができなくなります。 Nameなどのユーザーデータを取得する必要がある場合、LDAPを使用してユーザーデータを駆動し、認証/承認を処理するにはどうすればよいでしょうか。
私たちは、LDAPがデータの「ソース」として扱われ、現在のシステムはそのままの状態でハイブリッドなアプローチをとることを検討しました。これは、ライブトランザクションが最新の情報を使用するようにLDAPに対して更新するトランザクション処理コードを変更し、アプリケーションDBをレポート目的のために最新の状態に保つためにLDAPに対して定期的に同期する必要があります。
この解決方法は少しばかげているように見えますが、動く部分がたくさんあるようですが、ウェブ上の他の場所ではこのテーマをあまり見つけられませんでした。
ユーザー情報はどのように処理する必要がありますか?すべてのユーザー情報に簡単にアクセスでき、レポート作成のためにシステムの残りの部分に簡単に結び付けることができるように、アプリを構成する方法は? SpringのLDAPとHibernateを統合して、データレイヤー上のレイヤーを知る必要がない方法はありますか?または、LDAPから既存のデータベースに情報を引き込むのが最も簡単な方法ですか?
データモデルにはユーザーへの参照があるため、ユーザーデータベースエンティティは必要ですか? – Ralph
@Ralph - はい、他のエンティティが特定のユーザーに接続されています(たとえば、ユーザーXが操作Yを受けました)。 – cdeszaq