3

これはおそらく初心者の質問です。

ログイン、パス、および権限に関する情報を含むテーブルUSERがあります。権限または役割に応じて、各ユーザーに関する詳細情報は、教師、生徒、保護者のいずれかに表示されます。ユーザーがログインすると、ユーザーテーブルに保存されている情報をセキュリティコンテキストから簡単に取得できます。

ログイン後、ヘッダーに常に名と名前を表示したいのですが、これらは他のテーブルから取得できます。

私の質問はこれです:セッションでこれらのオブジェクトの1つを常に保存することをどのように処理しますか?または、User(春までに保存されます)を保存し、詳細情報が必要になるたびに特定のテーブルをフェッチするだけで大​​丈夫ですか?

私はSpringSecurity3、Hibernate、JSP、Sitemashを使用しています。

より明確にするために:

ログに記録されたユーザーを処理し、一部のコンテンツを制限する方法を知っています。ログインの詳細(id、pass、role)はUSERテーブルに保存され、これで問題ありません。取得して、必要な場所に表示できます。問題は、特定のユーザーに関する詳細(住所、名前、電子メールなど)が別のテーブル(STUDENT、TEACHER、PARENT-USERテーブルの役割に応じて)に格納されることです。これは私がすべてのページで知りたいことです-たとえば彼/彼女の名前を表示するために。

4

1 に答える 1

1

短くするには-1.追加のフィールドを提供するためにspringUserを拡張する必要があります。2. UserDetailsS​​erviceインターフェースを実装し、セキュリティコンテキストで参照する必要があります。3.これで、次のようにコントローラーでオブジェクトをフェッチできます。authentication.getPrincipal()-タイプにキャストするためのrememebr。

さらに、個人的には、プロジェクト内のすべてのコントローラーのベースであるAbstracControllerを常に持っています。とりわけ、現在のプリンシパルを返すメソッドがあります。

于 2012-05-31T12:51:31.377 に答える