Posts [개발자 블로그] Custom Login Form With Spring Security
Post
Cancel

[개발자 블로그] Custom Login Form With Spring Security

1) security-context.xml에서 security탭에서 form-login추가

  • login-page -> 로그인이 필요한 경우에 /login으로 리다이렉트가 이뤄짐
  • authentication-failure-url -> 인증 실패시 /login?error로 리다이렉트가 이뤄짐
    1-
    2-

2) LoginController추가

6-

3) login.jsp 추가

  • <c:url value=”/login”> -> ContextRoot가 자동적으로 들어감
  • csrf 토큰 추가 해줘야함
  • csrf(Cross-Site-Request-Forgery) 라는 웹 공격이 있음 3-

  • 클라이언트가 은행사이트에 접속해서 인증된 상태에서 attack페이지에 접속시 은행사이트에 attacker에게 100달러를 보내는 form태그를 자동적으로 submit하여 자동적으로 내 계좌에서 attacker에게 100달러를 자동이체 시켜주는 Web 공격 중 하나
  • 은행사이트 방문시 토큰을 발행하여 Client는 토큰을 가지게 되어 은행사이트 방문할시 토큰을 request마다 전달해줘서 인증해주는 방식으로 구현해야함
  • 발행받은 토큰을 매번 보내주기 위해 수정해줘야함
    4-

  • 위에 입력받은 id와 pw를 contextroot/login로 Post 방식으로 보내주면 spring에서 자동적으로 인증절차가 이뤄지게 되있음

4) security-context.xml에 /login에 대해 접근설정

5-

  • ※만약 csrf 토큰을 안 보낼시 서버가 승인을 거부하게됨(forbidden)
    스크린샷 2020-03-12 오후 9 07 45

5) Login Error 설정

  • error시 /login?error로 리다이렉트가 이뤄지는데 이때 error param으로 check해서 수행됨
    7-

  • error 메시지 출력
    8-

6) 테스트

9-

This post is licensed under CC BY 4.0 by the author.