Skip to content

Commit 0661055

Browse files
authored
Merge pull request #1 from AlgorithmChef/feature/user_domain
user_domain 완성 및 ci.yml 파일 작성 후 병합
2 parents b8cd725 + 75fbd85 commit 0661055

15 files changed

Lines changed: 307 additions & 4 deletions

.github/workflows/ci.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Java CI with Gradle
2+
on:
3+
push:
4+
branches: ["main", "develop"]
5+
6+
pull_request:
7+
branches: ["main", "develop"]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
17+
- name: Set up JDK 21
18+
uses: actions/setup-java@v4
19+
with:
20+
java-version: "21"
21+
distribution: "temurin"
22+
23+
- name: Cache Gradle packages
24+
uses: actions/cache@v4
25+
with:
26+
path: |
27+
~/.gradle/caches
28+
~/.gradle/wrapper
29+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
30+
restore-keys: |
31+
${{ runner.os }}-gradle-
32+
33+
- name: Grant execute permission for gradlew
34+
run: chmod +x ./gradlew
35+
36+
- name: Build with Gradle (Skip Tests)
37+
env:
38+
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
39+
run: ./gradlew build -x test

src/main/java/com/webservice/algorithmchef/config/JwtAuthenticationFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
3535
* 💡 임시 비밀번호(status="TEMPORARY") 사용자가 접근할 수 있는 유일한 경로.
3636
* 이 경로 외의 모든 API 접근은 403 Forbidden을 반환합니다.
3737
*/
38-
private static final String ALLOWED_PATH_FOR_TEMP_USER = "/auth/findPassword";
38+
private static final String ALLOWED_PATH_FOR_TEMP_USER = "/auth/update-tempPassword";
3939

4040
@Override
4141
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)

src/main/java/com/webservice/algorithmchef/config/SecurityConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
3434

3535
http
3636
.authorizeHttpRequests(authorize -> authorize
37-
// 실제 사용하는 로그인/회원가입 경로로 수정해주세요.
38-
.requestMatchers("/auth/login", "/auth/signUp").permitAll()
37+
.requestMatchers("/auth/login", "/auth/signUp",
38+
"/auth/findPassword", "/auth/findUserId").permitAll()
3939
.anyRequest().authenticated());
4040

4141
http

src/main/java/com/webservice/algorithmchef/controller/UserController.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,21 @@
22

33
import org.springframework.http.HttpStatus;
44
import org.springframework.http.ResponseEntity;
5+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
6+
import org.springframework.security.core.userdetails.UserDetails;
7+
import org.springframework.transaction.annotation.Transactional;
8+
import org.springframework.web.bind.annotation.PatchMapping;
59
import org.springframework.web.bind.annotation.PostMapping;
610
import org.springframework.web.bind.annotation.RequestBody;
711
import org.springframework.web.bind.annotation.RequestMapping;
812
import org.springframework.web.bind.annotation.RestController;
913

14+
import com.webservice.algorithmchef.dto.user.ChangePasswordRequest;
15+
import com.webservice.algorithmchef.dto.user.ChangePasswordResponse;
16+
import com.webservice.algorithmchef.dto.user.FindPasswordRequest;
17+
import com.webservice.algorithmchef.dto.user.FindPasswordResponse;
18+
import com.webservice.algorithmchef.dto.user.FindUserIdRequest;
19+
import com.webservice.algorithmchef.dto.user.FindUserIdResponse;
1020
import com.webservice.algorithmchef.dto.user.UserLoginRequest;
1121
import com.webservice.algorithmchef.dto.user.UserLoginResponse;
1222
import com.webservice.algorithmchef.dto.user.UserSignUpRequest;
@@ -42,4 +52,39 @@ public ResponseEntity<?> signUp(@RequestBody UserSignUpRequest userSignUpRequest
4252
return ResponseEntity.badRequest().body(e.getMessage());
4353
}
4454
}
55+
56+
@Transactional
57+
@PatchMapping("/findPassword")
58+
public ResponseEntity<?> findPassword(@RequestBody FindPasswordRequest fPasswordRequest){
59+
try {
60+
FindPasswordResponse pResponse = userService.findPassword(fPasswordRequest);
61+
return ResponseEntity.ok(pResponse);
62+
}catch(IllegalArgumentException e) {
63+
return ResponseEntity.badRequest().body(e.getMessage());
64+
}
65+
}
66+
67+
@PatchMapping("/update-tempPassword")
68+
public ResponseEntity<?> updateTempPasswod(@RequestBody ChangePasswordRequest cPasswordRequest,
69+
@AuthenticationPrincipal UserDetails userDetails){
70+
try {
71+
String userId = userDetails.getUsername();
72+
ChangePasswordResponse cResponse = userService.updateTempPassword(cPasswordRequest, userId);
73+
return ResponseEntity.ok(cResponse);
74+
}catch(IllegalArgumentException e) {
75+
return ResponseEntity.badRequest().body(e.getMessage());
76+
}
77+
}
78+
79+
@PostMapping("/findUserId")
80+
public ResponseEntity<?> findUserId(@RequestBody FindUserIdRequest fIdRequest){
81+
try {
82+
FindUserIdResponse idResponse = userService.findUserId(fIdRequest);
83+
return ResponseEntity.ok(idResponse);
84+
}catch(IllegalArgumentException e) {
85+
return ResponseEntity.badRequest().body(e.getMessage());
86+
}
87+
}
88+
89+
4590
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.webservice.algorithmchef.dto.user;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
6+
@Getter
7+
@NoArgsConstructor
8+
public class ChangePasswordRequest {
9+
10+
private String password;
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.webservice.algorithmchef.dto.user;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
@Getter
7+
@AllArgsConstructor
8+
public class ChangePasswordResponse {
9+
10+
private String accessToken;
11+
private String message;
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.webservice.algorithmchef.dto.user;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
6+
@Getter
7+
@NoArgsConstructor
8+
public class FindPasswordRequest {
9+
10+
private String userId;
11+
private String email;
12+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.webservice.algorithmchef.dto.user;
2+
3+
import com.webservice.algorithmchef.model.User;
4+
5+
public class FindPasswordResponse {
6+
7+
private String userId;
8+
private String message;
9+
10+
public FindPasswordResponse(User user) {
11+
this.userId = user.getUserId();
12+
this.message = user.getEmail() + "로 임시비밀번호 전송했습니다.";
13+
}
14+
15+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.webservice.algorithmchef.dto.user;
2+
3+
import java.time.LocalDateTime;
4+
5+
import lombok.Getter;
6+
7+
@Getter
8+
public class FindUserIdRequest {
9+
private String email;
10+
private LocalDateTime birthDate;
11+
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.webservice.algorithmchef.dto.user;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public class FindUserIdResponse {
7+
8+
private String userId;
9+
public FindUserIdResponse(String userId) {
10+
this.userId = userId;
11+
}
12+
}

0 commit comments

Comments
 (0)