2012-03-30 2 views
5

Я пытаюсь аутентифицировать пользователя в приложении Spring Security через oAuth. Я уже получил токен и данные пользователя.Spring Security: аутентификация пользователя вручную

Как я могу аутентифицировать пользователя вручную без пароля и классической формы входа? Спасибо.

ответ

19

Что-то вроде этого:

Authentication authentication = new UsernamePasswordAuthenticationToken(person, null, person.getAuthorities()); 
log.debug("Logging in with {}", authentication.getPrincipal()); 
SecurityContextHolder.getContext().setAuthentication(authentication); 

Где person это ваш UserDetailsBean объект.

+0

Большое спасибо! Это хорошо работает. –

+1

Обратите внимание: это будет работать, только если ваш путь signIn использует сопоставление безопасности следующего типа: '' В новых версиях весенней безопасности есть лучший и быстрый способ пропустить безопасность, например. '' в новом формате данное решение не будет работать, так как в следующем сценарии не создается SecurityContextHolder. –

+0

@vaccum будет работать для http basic authentication –

Смежные вопросы