· 1분 읽기
Last updated on

스프링 시큐리티 - SESSION (4) 커스텀 로그인


Spring Security

목록 보기숨기기7/11
  1. Spring Security 같은 보안 FrameWork를 사용해야 하는 이유
  2. Spring Security 의 서블릿과 필터
  3. Spring Security 의 내부 동작 과정
  4. 스프링 시큐리티 - SESSION (1) 간단 동작 원리
  5. 스프링 시큐리티 - SESSION (2) 프로젝트 생성
  6. 스프링 시큐리티 - SESSION (3) 인가 작업
  7. 스프링 시큐리티 - SESSION (4) 커스텀 로그인
  8. 스프링 시큐리티 - SESSION (5) 비밀번호 암호화
  9. 스프링 시큐리티 - SESSION (6) DB연동과 회원가입
  10. 스프링 시큐리티 - SESSION (7) DB 기반 로그인 검증
  11. Spring OAuth2 JWT방식(1) - 개요

기존에는 인가가 필요한 경로에 접근 시, 스프링 시큐리티에서 제공하는 로그인 폼을 통해 로그인 했어야 했다.

이 디폴트 로그인 폼을 내가 만든 로그인 폼으로 변경하는 작업을 해보자.

login.mustache 파일을 아래와 같이 작성한다.

다음으로 로그인 컨트롤러도 하나 생성해 준다.

이전에는 설명을 못했었는데, @Controller와 @RestController의 차이가 뭐냐면, Rest한 Json데이터를 Return하는 형식이 아닌, 하나의 View를 return하는 방식이다. 우리는 mustache를 return 해주기 위해서 @Controller를 사용한 것.

이제 SecurityConfig파일에서 아래와 같이 작성하면 된다.

스프링 시큐리티에는 csrf라는 사이트 위변조 방지 시스템이 설정되어있는데, post요청을 보낼때 csrf토큰도 같이 보내지도록 설계되어있다.

로그인 시, 이 csrf 토큰이 넘겨오지 않는다면, 로그인이 진행되지가 않는데 이런 상황 때문에 개발 환경에서는 csrf 설정을 꺼놓는 것이 좋다.

formLogin 메서드도 마찬가지로 람다식으로 작성한다. 

loginProcessingUrl은 로그인 로직을 구성하는 url이다. 이 부분은 로그인 전(인가 전)이기 때문에 permitAll()처리.

그럼 이제 localhost:8080/admin경로로 들어가 보자.

바로 커스텀한 로그인 페이지로 이동된 것을 볼 수 있다.

댓글

댓글을 불러오는 중…