며칠 동안 나는 Facebook과 애플리케이션을 통합하는 작업을 수행 해왔다. 성공적으로 연결을 만들었고 Facebook 로그인 후 사용자를 데이터베이스로 복사 한 다음 컨텍스트 내에서 내부 사용자를 사용하고 싶습니다. 봄 보안 로그인에 'in-bean'로그인 방법을 사용할 때 스프링 보안 컨텍스트의 다른 보안 주체
우리는 우리의 클래스가
UserDetailsService
를 위치 : implemeting 우리의
인증 관리자 오버로드.
누군가 페이스 북으로 로그인하면 그는 알 수없는 추상적 인 자격증을 가지고 있습니다.
Authentication auth = new UsernamePasswordAuthenticationToken(
profile.getId(), new Md5PasswordEncoder().encodePassword(
profile.getEmail() + profile.getId(), null),
(Collection<? extends GrantedAuthority>) getAuthorities(profile.getId()));
문제 : 나는
public String profile(Locale locale, Model model, HttpSession session, Principal principal)
사용하는 일부 컨트롤러 내에서
와는 principal
실제로 다른 포함 나는 그를 로그인 내 페이스 북 로그인 컨트롤러에이 방법을 사용 사물. 그 로그인 일반 스프링 보안을 위해
: org.springframew[email protected]4527d081: Principal: [email protected]: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Credentials: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]21a2c: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: A5E9AB9E4AEE7486EC4B4F6133F77320; Granted Authorities: ROLE_ADMIN
그러나 컨트롤러의 방법에 로그인 후
의 : org.springframew[email protected]cd4699c5: Principal: 1405308431; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: ROLE_CLIENT
질문 :,모든 컨트롤러에서 이러한 유형을 구별하고 싶지 않습니다. 왜 다른가?! 그것은 분명히 우리가 정상적인 자격 증명으로 로그인 할 때 사용자 (내 타입) 객체이고 그 페이스 북만을위한 String입니다. 페이스 북 로그인이 내 보안 컨텍스트에서 User 객체를 제공하도록 어떻게 변경합니까?