Случай использования: получение имени пользователя в отдельном Java-файле JWTAUTHFILTER
Код: Выделить всё
if(userEmail != null && SecurityContextHolder.getContext().getAuthentication() == null){
UserDetails userDetails = userService.findByUsername(userEmail);
}
Код: Выделить всё
public interface UserService {
UserDto createUser(UserDto user);
}
Код: Выделить всё
@Service
public class UserImpl implements UserService {
private final UserRepository userRepository;
private PasswordEncoder passwordEncoder;
@Autowired
public UserImpl(final UserRepository userRepository){
this.userRepository = userRepository;
}
@Override
public UserDto createUser(UserDto user) {
user.setPassword(passwordEncoder.encode(user.getPassword()));
UserEntity userEntity = userToUserEntity(user);
userRepository.save(userEntity);
return user;
}
@Override
public Optional findByUsername(String username) {
Optional userName = userRepository.findByUsername(username);
return userName.map(user -> userEntityToUserModel(user));
}
private UserEntity userToUserEntity(final UserDto user){
// UserEntity userEntity = new UserEntity();
// userEntity.setUsername(user.getUsername());
// userEntity.setId(user.getId());
// userEntity.setPassword(user.getPassword());
// userEntity.setRole(user.getRole());
return UserEntity.builder()
.id(user.getId())
.username(user.getUsername())
.role(user.getRole())
.password(user.getPassword())
.build();
}
private UserDto userEntityToUserModel (final UserEntity userEntity){
return UserDto.builder()
.id(userEntity.getId())
.password(userEntity.getPassword())
.role(userEntity.getRole())
.username(userEntity.getUsername())
.build();
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ilsservice