package ee.esutoniagodesu.security.social; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.social.connect.Connection; import org.springframework.social.connect.web.SignInAdapter; import org.springframework.social.security.SocialAuthenticationToken; import org.springframework.social.security.SocialUserDetails; import org.springframework.social.security.SocialUserDetailsService; import org.springframework.web.context.request.NativeWebRequest; public class SimpleSignInAdapter implements SignInAdapter { private static final Logger log = LoggerFactory.getLogger(SimpleSignInAdapter.class); private final SocialUserDetailsService socialUserDetailsService; public SimpleSignInAdapter(SocialUserDetailsService socialUserDetailsService) { this.socialUserDetailsService = socialUserDetailsService; } @Override public String signIn(String localUserId, Connection<?> connection, NativeWebRequest request) { log.debug("signin {}", localUserId); SocialUserDetails userDetails = socialUserDetailsService.loadUserByUserId(localUserId); Authentication token = new SocialAuthenticationToken(connection, userDetails, null, userDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(token); return null; } }