2016-07-12 7 views
0

カスタム "userDetail"オブジェクトに追加情報を保存したいのですが、オブジェクトに情報を追加したいときはわかりません。ログイン後(JWT-Token login)、すべてのメソッドに対してアクセス可能である必要があります。SecurityContextHolder.getContext().getAuthentication().getInformation() トークンが生成される頃に私のカスタムAuthenticationControllerで設定することを考えましたが、これは参照される型その時点でuserDetails、ないcustomUserDetailsされていますuserDetailsにカスタム情報を追加することはできますか?

UserDetails userDetails = this.userDetailsService.loadUserByUsername(authenticationRequest.getUsername()); 
//TODO setInformation 
String token = this.tokenUtils.generateToken(userDetails); 

そのような情報を追加するための認証/承認プロセスで最高のポイントは何ですか、そしてどのように私は最善そうでしょうか?

答えて

0

さらに詳しい研究の末、ユーザーオブジェクトにカスタムデータを入力する最適な時点は、UserDetailsインターフェイスのカスタマイズされた実装のコンストラクタであると思われます。同時に、Userオブジェクトに対して権限とその他のデータが設定されています。たとえば、次のように情報を設定する方法は、ログインプロセスのその時点で、校長があるため不可能です校長に記録され、に基づいてそうしたため

public SpringSecurityUser(Long id, String username, String password, String email, Date lastPasswordReset, 
          Collection<? extends GrantedAuthority> authorities) { 
    this.setId(id); 
    this.setUsername(username); 
    this.setPassword(password); 
    this.setEmail(email); 
    this.setLastPasswordReset(lastPasswordReset); 
    this.setAuthorities(authorities); 
    this.setMyInfo(Information); 
    } 

これは、私にとって最初は問題でした作成されます。

関連する問題