Ich benutze UserDetailsManager, um neue Benutzer und richtige Weise zu erstellen, versuchen MyUser-Objekt aus der Datenbank zu erhalten. Hier ein Beispiel:Benutzerobjekt kann nicht richtig nach der Erstellung abgerufen werden
User user = new User(username, passwordHash, Arrays.asList(new SimpleGrantedAuthority("ROLE_USER")));
userDetailsManager.createUser(user);
MyUser current = users.findByUsername(user.getUsername());
public MyUser findByUsername(String username) {
TypedQuery<MyUser> query = entityManager.createQuery(
"select u from User u where u.username = :username", User.class);
query.setParameter("username", username);
return query.getResultList().get(0);
}
Und es gibt immer null.
DB überprüfen - alles ist vorhanden. Warum?
Ist Ihr 'eine Erweiterung' EntityManager' userDetailsManager'? Wenn ja, versuchen Sie, 'userDetailsManager.flush();' aufzurufen, nachdem Sie Ihren Benutzer erstellt haben. –
Nein, 'userDetailsManager' von' org.springframework.security.provisioning.JdbcUserDetailsManager' –