[스프링] Form validation
Controller에 전달되는 파라미터(form)를 검증할 수 있는 방법
[스프링 시큐리티] 로그인 수동 처리
스프링 시큐리티에서 제공하는 로그인 폼을 이용하지 않고 로그인을 하는 방법?
[스프링] @Profile
로컬 개발 환경, 테스팅 환경, 운영 환경에 따른 다른 프로필, 프로퍼티를 사용하는 방법
[스프링] 핸들러 인터셉터
HandlerInterceptor란?
- 특정한 URI 호출을 가로채서 클라이언트 요청이 컨트롤러에 가기 전, 응답이 클라이언트에게 가기 전에 가로챔
DispatcherServlet
이 컨트롤러를 요청하기 전, 후에 요청과 응답을 가로챔
[스프링] Entity Graph
OneToMany, ManyToMany의 관계는 디폴트로 Lazy Loading이므로 N+1 문제가 발생 가능
[스프링 시큐리티] 예외 등록하기
Static 리소스 파일들이 스프링 시큐리티에 의해 접근이 차단되는 경우
[스프링 시큐리티] remeberMe 사용
remeberMe?
- 매번 로그인을 하지 않고 로그인 상태를 유지하고 싶을 때?(로그인 상태 유지)
- 인증 정보(username, password 등)를 해시해서 쿠키로 보관
- 쿠키가 탈취될 경우 그대로 계정 로그인이 가능
- 그래서 매번 바뀌는 토큰, 시리즈(랜덤, 고정) 등의 정보를 조합해서 쿠키를 새로 생성
- db에 저장해서 요청으로 들어온 쿠키와 비교해야 함
http.rememberMe()
.userDetailsService(accountService)
.tokenRepository(tokenRepository());