[Java] Spring Boot을 통해 개별 로그인 처리를 하려는 경우
5815 단어 JavaSpring Boottech
개요
스프링 부트는
Spring Security
기능을 사용하여 로그인 처리를 편입할 수 있습니다.자세한 내용은 Spring Security with Spring Boot 2.0 간단한 Rest API 구현에 설명되어 있습니다.이 글에도 있지만 로진의 API는 기본적으로 제공되기 때문에 따로 실시할 필요가 없다.다만, 다른 쪽에서 뭘 처리하면서 로그인 처리에 편입하고 싶은 경우도 있다고 생각합니다.이번에는 개별 로그인 처리 방법에 대해 설명한다.
대응 방법
Spring Security를 사용하여 사용자를 수동으로 인증하는 방법에 기재된 대로 수동으로 인증할 수 있습니다.인증된 내용을
SecurityContext
로 설정하면 로그인 상태가 됩니다.샘플
대체로 이 같은 보도의 복제품으로 실제 샘플도 첨부된다.위 보도와 다른 곳은 사용
AuthenticationProvider
된 곳이다.SampleUserService.java
@Service
public class SampleUserService implements UserDetailsService {
@Autowired
UserRepository userRepository;
@Autowired
AuthenticationProvider authenticationProvider;
@Override
public UserDetails loadUserByUsername(final String email) {
// emailでデータベースからユーザーエンティティを検索する
UserDetails user = userRepository.findByEmail(email);
if (user == null) {
throw new UsernameNotFoundException("user not found");
}
return user;
}
// ユーザの手動認証
public void authEmail(String email, String password) {
// 認証
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(email, password);
try {
Authentication auth = authenticationProvider.authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(auth);
}
catch (Exception exception) {
throw new AppException(HttpStatus.UNAUTHORIZED, "UnAuthorized");
}
}
}
Reference
이 문제에 관하여([Java] Spring Boot을 통해 개별 로그인 처리를 하려는 경우), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/someone7140/articles/c7f6bf916f5b49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)