Мне нужно получить доступ к объекту из моего DaoAuthenticationProvider
в режиме Spring.Доступ к HttpServletRequest во время DaoAuthenticationProvider аутентифицирован в Spring Security
Компонент безопасности расширяет DaoAuthenticationProvider
, и мы переопределяем метод authenticate
для выполнения некоторой пользовательской проверки подлинности/проверки подлинности. Дополнительная проверка необходима для проверки ip-адреса пользователя, который входит в URL-адрес запроса в качестве параметра строки запроса (пример: http://domain.com/context?ip=192.168.0.1
).
Текущий подход, который я пытаюсь использовать, - использовать RequestContextHolder
thread-local и получить http-запрос в моем обычном DAOAuthenticationProvider
.
Некоторые другие решения, которые я читаю здесь и на весенних форумах, как представляется, предлагают ввести AuthenticationDetailsSource
, использовать custom-filter
и другие шаги, которые я не понимаю из-за того, что я новичок в весенней безопасности.
У нас будут разные веб-приложения, которые используют один и тот же компонент безопасности для выполнения аутентификации.
Может кто-нибудь указать мне в правильном направлении или помочь мне с любыми подходами, реализованными ранее?
Какую версию Spring Security вы используете? – sourcedelica
Spring Security 3.0.4. Если я использую RequestContextHolder во время проверки подлинности, будет ли он иметь тот же HTTP-запрос, который был получен в Spring Security, или может привести к забавным результатам, когда в моем RequestContextHolder есть другой экземпляр HTTP-запроса и тот, который используется в токене аутентификации, отличается? –