2012-03-30 2 views
5

oAuth를 통해 스프링 보안 애플리케이션에서 사용자를 인증하려고합니다. 이미 토큰과 사용자의 데이터를 받았습니다.스프링 보안 : 수동으로 사용자 인증

비밀번호 및 클래식 로그인 양식없이 수동으로 사용자를 인증하려면 어떻게해야합니까? 감사합니다. 이 같은

답변

19

뭔가 : person이 UserDetailsBean 개체입니다

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

.

+0

고맙습니다. 그것은 좋은 일이다. –

+1

signIn 경로가' 다음 유형의 보안 매핑을 사용하는 경우에만 작동한다는 점에 유의하십시오. 최신 버전의 스프링 보안에는 예를 들어 보안을 건너 뛰는 더 빠르고 좋은 방법. 새로운 형식으로 '이후의 시나리오에서 생성 된 SecurityContextHolder가 없기 때문에 주어진 솔루션은 작동하지 않습니다. –

+0

@vaccum은 http 기본 인증에서 작동합니다. –

관련 문제