8

Spring MVC と Spring Security は初めてです。Spring セキュリティと MVC を使用して、ログインおよび登録機能を実行しました。セッション管理の方法が見つかりません。

すべてのページ (電子メール、名前、ID、役割など) のユーザーの詳細にアクセスしたい。これらをセッションオブジェクトに保存して、どのページでも取得できるようにします。

春のセッションでは次の方法を取得します

Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
auth.getPrincipal();

しかし、これによって返されたオブジェクトからは、ユーザー名とパスワードの詳細しか取得できません。

しかし、そのユーザーの詳細にアクセスする必要があります。

  • セッションに保存してjspページにアクセスすることでこれを行う方法はありますか?
  • または、春にこれを行うためのOOTBの方法はありますか?

これを解決するために私を助けてください。前もって感謝します。

モデル クラス オブジェクトが SecurityContextHolder.getContext().getAuthentication().getDetails(); から返されるようにしたいと考えています。このために、構成する必要があります。

よろしく、 プラナフ

4

2 に答える 2

8

モデルクラスにUserDetailsインターフェイスを実装させる必要があります

class MyUserModel implements UserDetails {
    //All fields and setter/getters

    //All interface methods implementation
}

次に、スプ​​リングコントローラーでこれを行うことができます:

Authentication auth = SecurityContextHolder.getContext().getAuthentication();
Object myUser = (auth != null) ? auth.getPrincipal() :  null;

if (myUser instanceof MyUserModel) {
     MyUserModel user = (MyUserModel) myUser;    
     //get details from model object        
}
于 2014-07-17T09:59:50.043 に答える