HandlerInterceptor란?
- 특정한 URI 호출을 가로채서 클라이언트 요청이 컨트롤러에 가기 전, 응답이 클라이언트에게 가기 전에 가로챔
DispatcherServlet이 컨트롤러를 요청하기 전, 후에 요청과 응답을 가로챔
Continue reading
OneToMany, ManyToMany의 관계는 디폴트로 Lazy Loading이므로 N+1 문제가 발생 가능
Continue reading
Static 리소스 파일들이 스프링 시큐리티에 의해 접근이 차단되는 경우
Continue reading
remeberMe?
- 매번 로그인을 하지 않고 로그인 상태를 유지하고 싶을 때?(로그인 상태 유지)
- 인증 정보(username, password 등)를 해시해서 쿠키로 보관
- 쿠키가 탈취될 경우 그대로 계정 로그인이 가능
- 그래서 매번 바뀌는 토큰, 시리즈(랜덤, 고정) 등의 정보를 조합해서 쿠키를 새로 생성
- db에 저장해서 요청으로 들어온 쿠키와 비교해야 함
http.rememberMe()
.userDetailsService(accountService)
.tokenRepository(tokenRepository());
Continue reading
스프링 컨테이너 생성
Continue reading
Continue reading
스프링이란?
- 자바 언어 기반의 프레임워크
- 스프링 프레임워크 + 스프링 부트
- 스프링 데이터, 스프링 시큐리티, 스프링 세션 등
- 핵심 기술
- 스프링 DI 컨테이너, AOP, 이벤트, 기타
- 웹 기술
- 데이터 접근 기술
- 테스트
Continue reading
Servlet(서블릿)이란?
- 서버에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스(표준 스펙)
- 즉, 웹 서버에서 실행되는 작은 프로그램 단위
- HTTP 프로토콜 기반에서 확장된 CGI 방식의 서버 프로그래밍
- 서블릿 컨테이너에서 실행됨
- 스레드에서 실행됨
- HTTP 요청에 대해 특정 기능을 수행 + HTML 등의 형식으로 응답을 하는 프로그램
Continue reading