2022/01/10 3

[스프링 시큐리티] ThreadLocal

java.lang 패키지에서 제공하는 쓰레드 범위 변수 스코프가 쓰레드 이므로 각 쓰레드 내에서만 공유 같은 쓰레드라면 서로 다른 메서드에서도 사용 가능 SecurityContextHolder의 기본 전략 public class AccountContext { private static final ThreadLocal ACCOUNT_THREAD_LOCAL = new ThreadLocal(); public static void setAccount(Account account) { ACCOUNT_THREAD_LOCAL.set(account); } public static Account getAccount() { return ACCOUNT_THREAD_LOCAL.get(); } }

스터디-Spring 2022.01.10

[스프링 시큐리티] AuthenticationManager와 Authentication

스프링 시큐리티에서 인증(Authentication)은 AuthenticationManager가 한다. Authentication authenticate(Authentication authentication) throws AuthenticationException; 파라미터인 Authentication이 유저가 입력한 id, pw 같은 인증정보를 가지고 있다 AuthenticationManager.authenticate를 통해 인증정보가 유효하다면 Principal를 담고있는 Authentication 객체를 리턴한다 계정이 비활성화 되어있다면 - DisabledException 계정이 잠겨있다면 - LockedException 인증정보가 잘못되었다면 - BadCredentialsException 기본적..

스터디-Spring 2022.01.10