
Spring Security의 Security Session 기반의 인증 방식을 사용하여 로그인을 구현하려고 했지만, 프론트와 합치는 과정에서 Session이 전달되지 않는 오류가 발생했다. WithCridential 설정도 바꿔주고 서브도메인을 서버 IP와 연결시켜 cors 에러도 하나하나 해결하였지만 JWT로 구현하자는 의견이 많아 결국 JWT를 구현하게 되었다. 일단 Spring과 React를 합친 프로젝트를 분석했당 SecurityContextHolder HTTP 통신 왜 갑자기 HTTP에 대해서 나오는지 궁금할 수 있다. "로그인" 이라는 과정은 서버와 클라이언트가 데이터를 주고 받는 통신 방법이 필요하다. -> HTTP는 connectless/stateless 속성이 필요하다. 토큰 방식 (클..

https://tecoble.techcourse.co.kr/post/2020-09-20-entity-lifecycle-2/ Entity Lifecycle을 고려해 코드를 작성하자 2편 이번 편에서는 전편에서 해결하지 못한 부분이었던 “Spring Boot에서는 기본적으로 OSIV의 설정 값이 true인데도 불구하고 LazyInitializationException… tecoble.techcourse.co.kr @Component @Configuration public class OpenEntityManagerConfig { @Bean public FilterRegistrationBean openEntityManagerInViewFilter() { FilterRegistrationBean filterFil..

세션 로그인 방식을 구현하고, OAuth 방식으로 Google 로그인을 구현 시작했다. login.html html -> "/oauth2/authorization/google" OAuth Client 라이브러리에서 정해놓은 주소이기 때문에 주소를 지정해야함. 구글 로그인이 완료된 뒤의 후처리가 필요함. 1. 코드받기(인증) 2. 엑세스 토큰(권한) -> 코드가 아님, (엑세스 토큰 + 사용자 프로필 정보) 3. 사용자 정보 가져오기 4. 회원가입 자동 진행 / 추가적인 정보가 필요할 경우, 회원가입 창 WebSecurityConfig 의 SecurityFilterChain .oauth2Login() .loginPage("/user/login") .userInfoEndpoint() .userService(..

회원가입 구현 1. Controller에 PostMapping 설정 2. 회원가입 예외처리 설정 어떤 곳에서 발생한 오류인지 구분하기 위한 Enum ExceptionClass를 필드로 가지는 Constants 생성 public class Constants { public enum ExceptionClass { LOGIN_USERNAME("로그인 아이디"), LOGIN_PASSWORD("로그인 비밀번호"), SIGNUP_USERNAME("회원 가입 아이디"), SIGNUP_PASSWORD("로그인 패스워드"), SIGNUP_PASSWORDCHECK("로그인 패스워드 확인"); private String exceptionClass; ExceptionClass(String exceptionClass) { th..