내 응용 프로그램은 서비스에 대한 REST API를 공개하고 SpringSecurity를 사용하여 개인 서비스에서 로그인을 관리합니다. 사용자 정의 가입 및 로그인에는 어떤 종류의 문제도 없지만 이제는 페이스 북이나 트위터로 로그인/가입을 구현하려고합니다.이 작업을 수행하는 방법을 모르겠습니다.스프링 보안 및 휴식과 사회적인 SignUp
누구나 동일한 문제가 있었지만 해결 되었습니까?
페이스 북과 트위터 계정에 "매우 긴"맞춤 암호를 사용하려고했지만 작동하지 않았습니다.
업데이트
해결책을 시도했지만 오류가 발생합니다. 이것은 내 코드입니다
public UserDetails loadUserByUsername(String mail) throws UsernameNotFoundException {
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
if (ConstantPWCabinet.SOCIAL_LOGIN_FACEBOOK.equalsIgnoreCase(attr.getRequest().getParameter(ConstantPWCabinet.LOGIN_TYPE))) {
User facebookInfo = dao.getFacebookInfo(new FacebookTemplate(attr.getRequest().getParameter(ConstantPWCabinet.FACEBOOK_TOKEN)));
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority(Role.ROLE_USER_FACEBOOK.toString()));
org.springframework.security.core.userdetails.User user = new org.springframework.security.core.userdetails.User(facebookInfo.getEmail(), null, authorities);
Authentication auth = new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(auth);
return user;
}
logger.debug("Mail di accesso: " + mail);
User user = dao.getUserSelectedMail(mail);
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
String role = user.getRole().toString();
if (StringUtils.isEmpty(role))
authorities.add(new SimpleGrantedAuthority(Role.ROLE_USER.toString()));
else
authorities.add(new SimpleGrantedAuthority(role));
return new org.springframework.security.core.userdetails.User(user.getEmail(), user.getPassword(), authorities);
}
하지만 "Bad credential"이 표시되고 로그인하지 않습니다.
[스프링 사회 문서] (http://projects.spring.io/spring-social/) 및 예제를 보았습니까? 설정/코드의 예를 제공하면 유용한 응답을받을 확률이 높아질 수 있습니다. – eebbesen
나는 사회에서 정보를 복구하는 데 문제가 없습니다. 내 문제는 사회적 인증입니다. 암호가 없으면 어떻게 로그인합니까? 좋아, 토큰을 사용하지만 j_spring_security_check에 해당하는 것은 무엇입니까? 그리고 어떻게 'public UserDetails loadUserByUsername (String mail)을 쓰는지 UsernameNotFoundException'을 던졌습니다. – Zaknafein