Spring Security
의존성을 추가해 사용하고mustache
로 화면을 만들어서 테스트 해보자. 기본적으로 모든 경로에 대해Spring Security
가 요청을 가로채서 로그인 화면으로 먼저 이동되게 설정이 되어 있다. 인증 은 로그인 처리 과정이므로 로그인 검증 로직을 작성해보자 인가 는config
클래스를 등록해서 권한에 따라 접속할 수 있는 페이지와 없는 페이지를 설정 해보자
시큐리티를 통해 인증을 진행하는 방법은 사용자가 Login 페이지를 통해 아이디, 비밀번호를 POST요청 시 스프링 시큐리티가 데이터베이스에 저장된 회원정보를 조회 후 비밀번호를 검증하고, 서버 세션 저장소에 해당 아이디에 대한 세션을 저장하는 방식으로 이루어진다.
<aside> ✨
*CustomUserDetails*
*CustomUserDetailsService*
</aside>
각각 스프링 시큐리티에서 제공하는 UserDetails
, UsesrDetailsService
인터페이스를 implements
받고 메소드를 구현해서 DB
기반 로그인 검증 로직 작성
동작되는 순서는 위에서 아래로 동작하므로 코드 작성 시 순서에 유의 해서 작성해야한다. 아래
SecurityConfig
파일처럼 “요청한 유저의 권한Role
에 따라 접근을 허용/거부” 하는 과정을 “인가” 라고 한다.
requestMatchers()
-> 루트, 로그인 경로에 대해 특정 작업을 진행하고싶을 떄 사용하는 메소드permitAll()
-> 모든 사용자에게 로그인 하지 않아도 접근 가능하게 해주는 메소드hasRol()
-> 특정한 role 이 있어야 로그인 한 뒤에 경로에 접근 가능하게 해주는 메소드authenticated()
-> 로그인만 진행 하면 모두 접근 할 수 있는 메소드denyAll()
-> 로그인을 진행 해도 접근하지 못하도록 막는 메소드<aside> ✨
*SecurityConfig*
</aside><aside> ✨
*SecurityConfig*
*UserEntity*
*JoinDTO*
*CustomUserDetails*
*JoinContorlloer*
*JoinService*
*CustomUserDetailsService*
*UserRepository*
</aside>formLogin