title: Spring Security User
body: <p>What is best practise in Spring when creating a new user with custom attributes...to extend org.springframework.security.core.userdetails.User or to create the User in the UserDetailsService (this is the approach taken in the IceFaces tutorial).</p>
  
  <pre><code>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));
  }
  </code></pre>