
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.example.educatback.Auth;
import com.example.educatback.model.entity.Member;
import lombok.RequiredArgsConstructor;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
// 사실상 이게 로그인 컨트롤러 받은 요청을 서비스와 함께 처리
@Component
@RequiredArgsConstructor
public class CustomAuthenticationProvider implements AuthenticationProvider {
private final UserDetailsService userDetailsService;
private final PasswordEncoder passwordEncoder;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String loginId = authentication.getName();
String password = (String) authentication.getCredentials();
Member entity = (Member) userDetailsService.loadUserByUsername(loginId);
if(!passwordEncoder.matches(password, entity.getPassword())) {
throw new BadCredentialsException("Invalid Password");
}
return new CustomAuthenticationToken(entity, null, entity.getAuthorities());
}
@Override
public boolean supports(Class<?> authentication) {
return authentication.equals(CustomAuthenticationToken.class);
}
}