1) security-context.xml에서 security탭에서 form-login추가
- login-page -> 로그인이 필요한 경우에 /login으로 리다이렉트가 이뤄짐
- authentication-failure-url -> 인증 실패시 /login?error로 리다이렉트가 이뤄짐
2) LoginController추가
3) login.jsp 추가
- <c:url value=”/login”> -> ContextRoot가 자동적으로 들어감
- csrf 토큰 추가 해줘야함
csrf(Cross-Site-Request-Forgery) 라는 웹 공격이 있음
- 클라이언트가 은행사이트에 접속해서 인증된 상태에서 attack페이지에 접속시 은행사이트에 attacker에게 100달러를 보내는 form태그를 자동적으로 submit하여 자동적으로 내 계좌에서 attacker에게 100달러를 자동이체 시켜주는 Web 공격 중 하나
- 은행사이트 방문시 토큰을 발행하여 Client는 토큰을 가지게 되어 은행사이트 방문할시 토큰을 request마다 전달해줘서 인증해주는 방식으로 구현해야함
발행받은 토큰을 매번 보내주기 위해 수정해줘야함
- 위에 입력받은 id와 pw를 contextroot/login로 Post 방식으로 보내주면 spring에서 자동적으로 인증절차가 이뤄지게 되있음
4) security-context.xml에 /login에 대해 접근설정
※만약 csrf 토큰을 안 보낼시 서버가 승인을 거부하게됨(forbidden)
5) Login Error 설정
error시 /login?error로 리다이렉트가 이뤄지는데 이때 error param으로 check해서 수행됨
error 메시지 출력