From f95e0daacadae382eaca1fdf1ecdd8384c3fb0ef Mon Sep 17 00:00:00 2001 From: etoile0626 Date: Fri, 16 May 2025 15:40:48 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20OAuth=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=EC=9D=98=20user=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=9D=B8?= =?UTF-8?q?=EB=8D=B1=EC=8B=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/config/WebSecurityConfigOAuth.java | 8 +++- .../common/init/InitControllerOAuth.java | 21 ++++++++++ .../OAuth/common/init/InitServiceOAuth.java | 42 +++++++++++++++++++ .../ureca/OAuth/user/domain/UserOAuth.java | 2 +- 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/quickpick/ureca/OAuth/common/init/InitControllerOAuth.java create mode 100644 src/main/java/com/quickpick/ureca/OAuth/common/init/InitServiceOAuth.java diff --git a/src/main/java/com/quickpick/ureca/OAuth/auth/config/WebSecurityConfigOAuth.java b/src/main/java/com/quickpick/ureca/OAuth/auth/config/WebSecurityConfigOAuth.java index 47c3309..b7b2a50 100644 --- a/src/main/java/com/quickpick/ureca/OAuth/auth/config/WebSecurityConfigOAuth.java +++ b/src/main/java/com/quickpick/ureca/OAuth/auth/config/WebSecurityConfigOAuth.java @@ -41,7 +41,13 @@ public SecurityFilterChain filterChain(HttpSecurity http, OAuth2LoginSuccessHand .sessionManagement(session -> session .sessionCreationPolicy(SessionCreationPolicy.STATELESS)) //서버 세션 비활성화(jwt 사용하므로) .authorizeHttpRequests(auth -> auth - .requestMatchers("/auth/login", "/signup", "/auth/token", "/oauth2/**").permitAll() // 로그인, 회원가입, 토큰 재발급, 소셜로그인은 인증 없이 접근 + .requestMatchers("/auth/login" + , "/signup" + , "/auth/token" + , "/oauth2/**" + //, "/signup2" 성능 테스트용 유저 생성시 url, 베포시에는 미사용 + ) + .permitAll() // 로그인, 회원가입, 토큰 재발급, 소셜로그인은 인증 없이 접근 .anyRequest().authenticated() // 그 외 요청은 인증 필요 ) .formLogin(AbstractHttpConfigurer::disable) //폼로그인 비활성화 diff --git a/src/main/java/com/quickpick/ureca/OAuth/common/init/InitControllerOAuth.java b/src/main/java/com/quickpick/ureca/OAuth/common/init/InitControllerOAuth.java new file mode 100644 index 0000000..e175739 --- /dev/null +++ b/src/main/java/com/quickpick/ureca/OAuth/common/init/InitControllerOAuth.java @@ -0,0 +1,21 @@ +/* +package com.quickpick.ureca.OAuth.common.init; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +public class InitControllerOAuth { + //로그인 성능 테스트를 위한 userCount 만큼의 user 생성, 베포환경에서는 작동 안하도록 코드 전문 주석처리 + + private final InitServiceOAuth initServiceOAuth; + + @PostMapping("/signup2") + public String init( @RequestParam(defaultValue = "3000") int userCount ) { + return initServiceOAuth.initialize(userCount); + } +} +*/ diff --git a/src/main/java/com/quickpick/ureca/OAuth/common/init/InitServiceOAuth.java b/src/main/java/com/quickpick/ureca/OAuth/common/init/InitServiceOAuth.java new file mode 100644 index 0000000..1d90362 --- /dev/null +++ b/src/main/java/com/quickpick/ureca/OAuth/common/init/InitServiceOAuth.java @@ -0,0 +1,42 @@ +/* +package com.quickpick.ureca.OAuth.common.init; + +import com.quickpick.ureca.OAuth.user.domain.UserOAuth; +import com.quickpick.ureca.OAuth.user.repository.UserRepositoryOAuth; +import lombok.RequiredArgsConstructor; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class InitServiceOAuth { + //로그인 성능 테스트를 위한 userCount 만큼의 user 생성, 베포환경에서는 작동 안하도록 코드 주석처리 + + private final UserRepositoryOAuth userRepository; + private final BCryptPasswordEncoder bCryptPasswordEncoder; + + public String initialize(int userCount) { + userRepository.deleteAll(); + + List users = new ArrayList<>(); + + for (int i = 1; i <= userCount; i++) { + UserOAuth user = UserOAuth.builder() + .id("user" + i) + .password(bCryptPasswordEncoder.encode("pw" + i)) + .name("name" + i) + .age(26) + .gender("M") + .build(); + + users.add(user); + } + userRepository.saveAll(users); + + return "초기화 완료: 유저 " + userCount + "명 생성"; + } +} +*/ diff --git a/src/main/java/com/quickpick/ureca/OAuth/user/domain/UserOAuth.java b/src/main/java/com/quickpick/ureca/OAuth/user/domain/UserOAuth.java index cb10251..8e469cd 100644 --- a/src/main/java/com/quickpick/ureca/OAuth/user/domain/UserOAuth.java +++ b/src/main/java/com/quickpick/ureca/OAuth/user/domain/UserOAuth.java @@ -14,7 +14,7 @@ import java.util.Collection; import java.util.List; -@Table +@Table(indexes = {@Index(name = "idx_users_id", columnList = "id")}) //테이블 인덱싱 @Entity @Getter @NoArgsConstructor