git pull이나 git fetch를 해주면 main이 생긴다. 로컬 브랜치 생성 후 push 해주면 원격 저장소에도 로컬 브랜치가 나타난다! The current branch gayoung has no upstream branch 오류 원격저장소에 대한 브랜치 설정을 안해줘서 나타남 깃에서 해결책 알려줌 To push the current branch and set the remote as upstream, use git push --set-upstream origin [브랜치명]
시큐리티 옵션 활성화되면 인증된 사용자만 API 호출 가능함 기존의 API 테스트 코드들이 모두 인증 권한 없음 -> 테스트 코드마다 인증한 사용자가 호출한 것처럼 작동하게 수정 Gradle에서 전체 테스트 수행하는 것에서 오류남 -> Test에서 오른쪽 마우스, 전체 테스트 실행으로 하면 됨 1. CustomOAuth2UserService 찾을 수 없음 CustomOAuth2UserService를 생성하는 데 필요한 소셜 로그인 관련 설정값들이 없어서 발생함 src/test에 application.properties가 없으면 src/main에 있는 설정을 그대로 가져옴 이때 application-oauth.properties 설정은 가져오지 않음 (application.properties만 가져오기 때..
네이버 API 등록 https://developers.naver.com/apps/#/register?api=nvlogin 애플리케이션 - NAVER Developers developers.naver.com 애플리케이션 이름, 사용 API, 사용 환경, 서비스 URL (http://localhost:8080/), callbackURL 등록 -> ClientID, ClientSecret가 생성됨 application-oauth.properties spring.security.oauth2.client.registration.naver.client-id=9V6XsAlBeeZKCnP4huO8 spring.security.oauth2.client.registration.naver.client-secret=7nbpN..
기본적으로 세션은 실행되는 WAS의 메모리에서 저장되고 호출됨 세션이 애플리케이션 실행 시 실행되는 구조인 내장 톰켓의 메모리에 저장되어 있어 항상 초기화됨 == 배포할 때마다 톰캣이 재시작됨 2대 이상의 서버에서 서비스하고 있으면 톰캣마다 세션 동기화 설정을 해야 함 세션 저장소 톰캣 세션 일반적으로 기본으로 선택되는 방식 톰캣(WAS)에 세션 저장돼서 2대 이상의 WAS가 구동되는 환경에서는 세션 공유를 위한 추가 설정이 필요함 MySQL과 같은 데이터베이스 여러 WAS 간의 공용 세션 사용 가능한 가장 쉬운 방법 많은 설정이 필요 없지만 로그인 요청마다 DB IO가 발생해 성능 이슈 발생 가능 로그인 요청 많이 없는 백오피스, 사내 시스템 용도에서 사용됨 Redis, Memcached와 같은 메모리..
같은 코드가 반복되는 부분을 어노테이션 기반으로 개선할 수 있음 IndexController에서 세션값 가져오는 부분을 메소드 인자로 세션값 바로 받을 수 있게 변경 @LoginUser 어노테이션 생성 package com.springAWS.config.auth; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Logi..
사용자 정보 담당할 도메인 User 클래스 package com.springAWS.domain.user; import com.springAWS.domain.BaseTimeEntity; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; @Getter @NoArgsConstructor @Entity public class User extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private Stri..
구글 서비스 등록 https://console.cloud.google.com Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 새 프로젝트 선택, 만들기 API 및 서비스에서 사용자 인증 정보 만들기 - OAuth 클라이언트 ID (먼저 동의 화면 구성) 애플리케이션 유형 선택 승인된 리다이렉션 URI 값 등록 http://localhost:8080/login/oauth2/code/google 서비스에서 파라미터로 인증 정보 줄 때 인증 성공 시 구글에서 리다이렉트할 URL 기본으로 {도메인}/login/oauth2/code/{소셜서비스코드}로 리다이렉트 URL 지원함 리다이렉트 URL 지원하는 Controller는 이미 시큐리티에서 구현해둠 A..