2016-07-12 17 views
0

Ich möchte zusätzliche Informationen in meinem benutzerdefinierten "userDetail" -Objekt speichern, aber ich bin mir nicht sicher, wann ich die Informationen in das Objekt hinzufügen möchte. Es muss für jede Methode zugänglich sein, nachdem die Anmeldung passiert ist (JWT-Token-Anmeldung) über SecurityContextHolder.getContext().getAuthentication().getInformation() Ich dachte darüber nach, es in meinem benutzerdefinierten AuthenticationController um die Zeit zu setzen, zu der das Token generiert wird, aber dies ist aufgrund des Akts des referenzierten Typs schwierig an diesem Punkt ist Userdetails, nicht customUserDetails:An welchem ​​Punkt kann ich benutzerdefinierte Informationen in userDetails hinzufügen?

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

Was ist der beste Punkt in der Authentifizierung/Autorisierung Prozess solche Informationen hinzuzufügen, und wie würde ich so am besten tun?

Antwort

0

Nach weiteren Untersuchungen scheint der beste Zeitpunkt zum Auffüllen des Benutzerobjekts mit benutzerdefinierten Daten der Konstruktor Ihrer angepassten Implementierung der UserDetails-Schnittstelle zu sein, während gleichzeitig Autoritäts- und andere Daten für das Benutzerobjekt festgelegt werden. Zum Beispiel:

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); 
    } 

Das war zunächst ein Problem für mich, da das Verfahren der Informationen Einstellung wurde so auf dem in Haupt angemeldet basiert dabei, die da zu diesem Zeitpunkt des Anmeldeprozesses nicht möglich ist, die Auftraggeber erschaffen werden.