이번에는 로그인 관련하여 인증 로직을 추가해보겠습니다. 전체적인 인증 로직은 다음과 같습니다. 클라이언트가 API 를 요청한다. 요청시에 로그인해서 발급받은 access token을 HTTP Authorization 헤더에 담아서 보내준다. JwtAuthenticationFilter에서 토큰을 검증하고, 토큰으로 요청한 사용자 정보를 데이터베이스에서 조회해서 SecurityContext에 저장한다. 요청한 API url에 따라서 접근 허용 여부를 검사한다. 접근에 성공하면 요청한 API url에 따라 Controller에서 작업을 수행한다. 접근에 실패하면 인증되지 않은 사용자의 경우 401응답을 내려주는 곳으로 redirect 요청한 자원에 접근 권한이 없는 경우 403응답을 내려주는 곳으로 redir..
이번에는 비밀번호를 그대로 사용할 수 없기 때문에 암호화를 해보고, 로그인을 위한 토큰을 발급받고 검증까지 진행해보겠습니다. 비밀번호 암호화 비밀번호 암호화는 Spring Security에서 제공하는 PasswordEncoder를 사용하겠습니다. PasswordEncoder는 암호화된 비밀번호를 생성하거나 저장된 비밀번호화 사용자가 입력한 비밀번호를 비교하는 기능이 있습니다. 바로 코드로 보겠습니다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) t..