In unserem Microservice verfügt jeder authentifizierte Spring Security Benutzer über eine anwendungsspezifische Datenstruktur. wenn auf darüber nachzudenken, wie können wir einfach diese Daten zwischenzuspeichern zusammen mit dem Benutzer, dachten wir, es wäre gut, wenn es so weit ähnlich geschehen könnte:Benutzerspezifische Anwendungsdaten mit Spring Security zwischenspeichern
die im Cache gespeicherten Daten an die In-Memory-Authentifizierung hinzufügen wenn die Benutzer zu schaffen:
public void configureGlobal(AuthenticationManagerBuilder auth) { auth.inMemoryAuthentication().withUser("user").password("123").roles("ROLE"); auth.inMemoryAuthentication().withUser("user").cache(appDate); ... }
die Daten in @RestController Methoden ziehen:
@RequestMapping("/foo") public void foo() { User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Object details = SecurityContextHolder.getContext().getAuthentication().getDetails(); Object cachedAppDate= SecurityContextHolder.getContext().getAuthentication().getCachedData(); }
Offensichtlich ist die fettgedruckte Methode eine Wunschliste und existiert nicht. Haben Sie Ratschläge, wie Sie dies einfach mit dem vorhandenen Spring Security Framework tun können?
danke!
ich glaube, Sie Cache als Detail auf die Authentifizierung festlegen. – chaoluo