Пользователь Spring Security - PullRequest
1 голос
/ 15 мая 2010

Что лучше всего делать весной при создании нового пользователя с пользовательскими атрибутами ... для расширения org.springframework.security.core.userdetails.User или для создания пользователя в UserDetailsService (этот подход используется в IceFaces учебник).

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));
}

1 Ответ

1 голос
/ 17 мая 2010

Если ваши пользовательские разрешения вписываются в контекст класса Spring Security User, тогда просто написать собственную службу UserDetails - это нормально. Но если у ваших пользователей есть другие атрибуты, которые не инкапсулированы в доступных полях в классе User по умолчанию, вам нужно будет выполнить оба эти действия. На самом деле нет «лучшей практики» - оба варианта хороши, это действительно зависит от вашего варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...