Я применил Spring Security в своем приложении. Я использовал реализацию по умолчанию, т. Е. Настроил ее с помощью моих собственных параметров (DataSource, Secured Areas и т. Д.), Но я не написал никакой пользовательской реализации.Получить дополнительную информацию от пользователя - Spring Security
Теперь я хочу получить больше данных от пользователя, то есть в той же таблице, что и имя пользователя и пароль, например название компании, идентификатор и т. Д. Однако я не хочу использовать эту информацию для входа.
Я не уверен, как это сделать. Из того, что я прочитал, это связано с UserDetailsService. Тем не менее, похоже, что создание пользовательского UserDetailsService было бы необходимо, если бы я хотел использовать эту информацию во время входа в систему, и это не то, что я хочу. Я просто хочу использовать эту информацию внутри приложения после входа пользователя.
Действительно ли это связано с UserDetailsServer? Это единственный файл, который я должен модифицировать?
Все примеры, которые я нашел на заказ UserDetailsService используется только имя пользователя и пароль, так что я не могу понять, где новые данные будут поступать в.
Спасибо!
'loadUserByUsername' возвращает UserDetails, но в коде, он возвращает' buildUserFromAccount' который возвращает пользователя. Итак, как CustomUserDetails участвует в коде? Класс DAO Account и все его методы должны быть реализованы мной, правильно? –
Если бы у вас была небольшая опечатка и исправлена. Далее поясним: 'UserDetails' - это интерфейс,' User' - это реализация весенних ценных бумаг, включая все базовые поля. Если вы хотите добавить свои собственные поля, проще всего расширить «Пользователь». Вы все равно можете вернуть объект «Пользователь» в этом методе или объект «UserDetails» или объект «CustomUserDetails», поскольку весенняя безопасность просто ожидает объект, который реализует «UserDetails». – Pete
А, Ок! Поэтому, используя это, я предоставляю все, чтобы Spring Security нуждалась в аутентификации. Однако объект User, который у него есть, имеет все мои пользовательские поля. Итак, как мне получить этот объект, так что я могу 'getCompany' например? –