Spring/Spring Security
Spring Security (7) - ExceptionTranslationFilter
ExceptionTranslationFilter AbstractSecurityInterceptor 의 하위 클래스에서 AuthenticationException 타입의 예외가 발생하면 처리하는 필터입니다. 처리할 수 있는 예외가 발생하였다면 (AuthenticationException, AccessDeniedException) 인증과 인가에 대한 처리를 해줍니다. 인증실패 - sendStartAuthentication 메소드 호출 인가실패 2-1. 익명사용자(비로그인) : sendStartAuthentication 메소드 호출 2-2. 로그인 사용자 : accessDeniedHandler 에게 처리를 위임 인가 실패 핸들러 커스텀 구현http.exceptionHandling() .accessDeniedH..
Spring Security (6) - LogoutFilter
역할 로그아웃에 대한 처리를 담당하는 필터입니다. 로그아웃 요청이 들어온 경우에만 적용되는 필터입니다. => 로그아웃일 경우에만 뭔가를 실행 LogoutHandler 로그아웃시 필요한 처리를 합니다 Composite 패턴으로 여러 핸들러를 중첩으로 사용할 수 있도록 합니다. CompositeLogoutHandler 가 해당 패턴을 사용할 수 있도록 하는 헬퍼클래스입니다. CsrfLogoutHandler, SecurityContextLogoutHandler 가 기본으로 등록되는 핸들러입니다. LogoutSuccessHandler 로그아웃 후의 처리를 합니다. SimpleUrlLogoutSuccessHandler 를 기본으로 사용합니다. logout options 다양한 옵션으로 로그아웃 처리를 할 수 있습..
Spring Security (5) - SecurityContextPersistenceFilter
SecurityContextPersistenceFilter 는 HttpRequest 와 HttpResponse 를 wrapping 한 HttpRequestResponseHolder 를 SecurityContextRepository 에게 전달하여 SecurityContext 를 반환받습니다. 접속정보가 없으면 SecurityContext 를 새로 생성합니다. 접속정보가 있으면 SecurityContextRepository 로부터 SecurityContext 를 가져옵니다. 저장 장소는 기본적으로 HttpSessionSecurityRepository 이며, 이 클래스는 HttpSession 에 SecurityContext 를 저장합니다. HttpSessionSecurityRepository 의 loadCon..
Spring Security (4) - 기본설정과 JPA 연동
시큐리티 설정 Spring Security는 의존성만 추가해도 기본 인증 폼을 보내줍니다.(Spring boot 사용시 자동으로 auto config 되는 부분이 있음) ==> 자동 설정으로 id 가 user 이고 password 가 콘솔에 출력되는 유저를 생성합니다. Spring security 기본 설정 추가 org.springframework.boot spring-boot-starter-security // java 설정파일 // 시큐리티 설정 파일임을 나타냄 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure..
Spring Security (3) - Authentication
Authentication 은 인증정보(Principal) 를 가지는 객체로 실제로 유효한 인증인지를 나타냅니다. 인증이 완료되기 전에는 사용자가 입력한 인증에 필요한 정보(username, password 등)를 가지고 있는 객체 인증이 완료되면, 인증 정보를 담는 객체 인증과정 인증되지 않은(로그인하지 않은) 상태에서 url 에 접근할 경우, AnonymousAuthenticationFilter 가 AnonymousAuthenticationToken(Authentication - 익명사용자를 나타내는 정보가 들어있음) 을 SecurityContextHolder 에 넣어줍니다. 인증을 요청하면 (로그인 요청) UsernamePasswordAuthenticationFilter (form login 시 인..