2010-05-15 5 views
1

Quelle est la meilleure pratique au printemps lors de la création d'un nouvel utilisateur avec des attributs personnalisés ... pour étendre org.springframework.security.core.userdetails.User ou pour créer l'utilisateur dans le UserDetailsService (c'est l'approche adoptée dans le tutoriel IceFaces).Spring Security User

public UserDetails loadUserByUsername(String username) 
     throws UsernameNotFoundException, DataAccessException { 
    AppUser user = userDAO.findUser(username); 
    if (user == null) 
     throw new UsernameNotFoundException("User not found: " + username); 
    else { 
     return makeUser(user); 
    } 
} 

private User makeUser(AppUser user) { 
    return new User(user.getLogin(), user 
      .getPassword(), true, true, true, true, 
      makeGrantedAuthorities(user)); 
} 

Répondre

1

Si vos autorisations utilisateur inscrivent dans le contexte de la classe utilisateur Spring Security, puis simplement écrire votre propre service UserDetails est très bien. Mais si vos utilisateurs ont d'autres attributs qui ne sont pas encapsulés dans les champs disponibles dans la classe par défaut User, vous devrez faire les deux. Il n'y a pas vraiment de "meilleure pratique" - les deux sont de bonnes options, cela dépend vraiment de votre cas d'utilisation.