🚗 Backend Toy Project

    [스프링부트 게시판] 25. 회원가입시 validation 체크

    회원가입시에 아이디, 비밀번호, 이메일의 형식을 따로 정해두고 해당 형식에 맞지 않으면 회원가입을 할 수 없도록 유효성 검사를 구현해주었습니다. 인터넷에 나와 있는 자료를 바탕으로 여러가지 방법을 시도해보았으나 잘 작동하지 않는 경우가 대부분이었는데, 이틀정도 구르다보니 어찌저찌 그럴듯 하게 동작하도록 구현은 된 것 같습니다. 유효성 검사를 위한 구현 과정은 다음과 같습니다. 📝 1. UserRequestDto 우선 기존에 ajax에서 엔티티를 통해 데이터를 받아오던 방식에서 따로 DTO를 만들어 데이터를 받아오는 방식으로 수정하였습니다. 이유는 여러가지가 있는데, 가장 큰 이유는 애초에 엔티티로 유효성 검사를 수행하려 할 경우 오류가 발생하였습니다. 오류가 발생한 정확한 이유는 모르겠으나 위처럼 수정하..

    [스프링부트 게시판] 24. Remember Me 기능 구현

    강의 영상에선 다루지 않았지만 로그인 시 Remember Me 기능을 구현해보고 싶어 관련 내용을 찾아보았습니다. 스프링 시큐리티에서 이와 관련하여 이미 다 내장하여 제공하고 있는 메서드들이 있어 생각보다 손쉽게 구현할 수 있었습니다. 📝 1. SecurityConfig 클래스 수정 @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf().disable() .rememberMe() .rememberMeParameter("remember") .tokenValiditySeconds(3600) .alwaysRemember(false) .userDetailsService(principalDetail..

    [스프링부트 게시판] 23. 로그인 실패 예외 처리

    로그인 시스템을 구현했지만 사용자가 로그인을 성공했을 경우만 구현하였고, 실패했을 경우는 따로 구현하지 않아 사용자가 로그인을 실패해도 별다른 메시지도 없이 페이지가 리로드 되기만 하여 이 부분을 개선해주었습니다. 📝 1. SimpleUrlAuthenticationFailureHandler 클래스를 상속받는 커스텀 핸들러 구현 로그인 실패와 관련된 예외는 HttpSecurity의 failureHandler()를 추가해주어야 캐치할 수 있다. 해당 메서드는 AuthenticationFailureHandler 인터페이스 구현체를 파라미터로 받는다. 따라서 AuthenticationFailureHandler 인터페이스를 구현하는 클래스를 생성해야 하는데 여기서는 SimpleUrlAuthenticationFai..

    [스프링부트 게시판] 22. 개선 및 수정사항

    이전에 강의를 듣고 완성한 프로젝트를 복습겸 처음부터 다시 작성해보고 있는데, 개선할 사항들과 스프링 부트 업데이트로 인해 수정해야하는 코드들이 종종 눈에 띄어 기록해 놓는 것이 좋을 것 같아 다시 글을 쓰게 되었습니다. 💡 DI를 수행할 때 필드 직접 주입이 아닌 생성자 주입을 수행 인프런에서 들은 강의를 바탕으로 기존에 필드 직접 주입을 통해 DI 했던 방식에서 @RequiredArgsConstructor 어노테이션과 final 키워드를 사용한 생성자 주입 방식으로 변경하였습니다. 💡 스프링 버전 업데이트로 인해 스프링 시큐리티를 통한 로그인 시에 더 이상 WebSecurityConfigurerAdapter 클래스를 사용할 수 없으므로 이는 아래와 같이 수정하였음 package com.cos.blog..