Если пользователь не вошел в систему, вы не сможете получить его из SecurityContext. Это процесс входа в систему, который помещает пользователя в контекст.
Просто используйте UserDetailsService для загрузки пользователя (UDS - это всего лишь DAO), а затем измените и сохраните его при необходимости. Это было бы полезно, например, в административных случаях (например, администратор исправляет ошибку в имени пользователя).
Дайте мне знать, если вы не об этом.
EDIT:
ОК, в ответ на ваш комментарий (и я делаю это по памяти, поэтому он может быть не на 100%):
SecurityContext context = SecurityContextHolder.getContext();
Authentication auth = context.getAuthentication();
CustomUser user = (CustomUser) auth.getPrincipal();
Что-то очень близкое к этому, если это не совсем верно. Будьте осторожны, потому что вы получите ClassCastException, если пользователь фактически не вошел в систему - вызов getPrincipal () вернет String «anonymousUser», если активирован анонимный фильтр Spring Security. Конечно, вы можете легко обновить код, чтобы справиться с этой возможностью.