2017-06-04 3 views
0

In einem Jhipster 4.4.1 Anwendung mit Mongodb, JWT. Ich brauche den Benutzer für eine Abfrage angemeldet, und ich weiß nicht, wie ich es in einem Java-Controller abrufen kann (Resource) In SecurityUtils Ich sehe nicht, wie die IDBenutzer angemeldet (ID), auf der Rückseite. Jhipster 4.1.1

public static String getCurrentUserLogin() { 
    SecurityContext securityContext = SecurityContextHolder.getContext(); 
    Authentication authentication = securityContext.getAuthentication(); 
    String userName = null; 
    if (authentication != null) { 
     if (authentication.getPrincipal() instanceof UserDetails) { 
      UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal(); 
      userName = springSecurityUser.getUsername(); 
     } else if (authentication.getPrincipal() instanceof String) { 
      userName = (String) authentication.getPrincipal(); 
     } 
    } 
    return userName; 
} 

Ich kann bekommen erfassen die Benutzer-ID angemeldet, ohne die Datenbank zu konsultieren.

Danke

Antwort

2

Wenn Sie den aktuellen Benutzer benötigen, dann können Sie gegen login abfragen, wie durch getCurrentUserLogin() in Ihrer Frage gegeben, weil es unique ohnehin ist.

Wenn Sie wirklich die ID wollen, müssen dann einen Poke um AccountResource und Sie werden sehen, dass UserDTO und User eine .getID() Methode haben.

+0

Für mich innerhalb meiner Ressource diese Codezeile erlaubte mir, ID des aktuell angemeldeten Benutzers zu erwerben. Ich bin einfach nur nicht 100% sicher, ob dies der richtige Weg ist: Long id = userService.getUserWithAuthoritiesByLogin (SecurityUtils.getCurrentUserLogin()). Get(). GetId(); – ivo

Verwandte Themen