2017-03-13 7 views
0

春のMVCでログオンしたユーザー名とIDを取得しようとしています。 ログインしたユーザー名を簡単に取得できますが、user_idを取得できません。 私はこのコードを使用してユーザー/プリンシパルの詳細を取得しています。Spring MVCでログインしたUser_Idを取得する方法

SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 

誰かがログに記録されたuser_idを取得する方法を知っていたら、

+0

内部IDですか? –

+0

@ bart.s保存されたユーザーIDです。しかし、ユーザーのログイン時に、私はその名前を取得することができます同様にそのIDを取得したい。 –

+2

Springセキュリティは、ユーザ名を含む "org.springframework.security.core.userdetails.UserDetails"のインスタンスを生成します。 Userスキーマにアクセスしたい場合は、UserDetailsの独自のサブクラスを実装し、ログインした後にそれを作成する必要があります。より良いアドバイスを提供するためにログインをどのように実装するかについての詳細をご記入ください。 –

答えて

1

Userクラスのorg.springframework.security.core.userdetails.UserDetails クラスを実装します。以下の例を参照してください。

@Entity 
@Table(name="users") 
public class User implements UserDetails,Serializable{ 
     @Id 
     @GeneratedValue 
     @Column(name = "userId") 
     private long userId; 
} 

し、ユーザーの詳細情報を取得するために、次のコードを使用します。

User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 
関連する問題