usign Spring Security, я пытаюсь получить идентификатор пользователя из моего экземпляра CustomUser, возвращенного из метода loadUserByUsername, в моем CustomUserDetailsService, как и я, чтобы получить имя (get.Name()) с аутентификацией. Спасибо за любые советы!Как получить идентификатор пользователя из CustomUser в Spring Security
Это, как я получить текущее имя зарегистрированного пользователя:
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String name = authentication.getName();
И это CustomUser
public class CustomUser extends User
{
private final int userID;
public CustomUser(String username, String password, boolean enabled, boolean accountNonExpired,
boolean credentialsNonExpired,
boolean accountNonLocked,
Collection<? extends GrantedAuthority> authorities, int userID)
{
super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
this.userID = userID;
}
}
И метод loadUserByUsername на моей службе
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException
{
Usuario u = usuarioDAO.getUsuario(s);
return new CustomUser(u.getLogin(), u.getSenha(), u.isAtivo(), u.isContaNaoExpirada(), u.isContaNaoExpirada(),
u.isCredencialNaoExpirada(), getAuthorities(u.getRegraByRegraId().getId()),u.getId()
);
}
Работали как очарование! Спасибо –
'Principal' можно впрыснуть. – naXa
Инъекция через параметр метода: @AuthenticationPrincipal CustomUser customUser – Tom