Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ πŸŽ‰ deploy/#60] 터닝 API μ΅œμ’… 배포.v1.0.1 #61

Merged
merged 264 commits into from
Aug 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
264 commits
Select commit Hold shift + click to select a range
46fcf07
[✨feat/#17]: JWT ν† ν°μ—μ„œ μ‚¬μš©μž ID μΆ”μΆœ λ©”μ†Œλ“œ κ΅¬ν˜„
jsoonworld Jul 6, 2024
cd67fa2
[✨feat/#17]: μ‚¬μš©μž μ •μ˜ 인증 토큰 클래슀 UserAuthentication κ΅¬ν˜„
jsoonworld Jul 6, 2024
5f8367c
[✨feat/#17]: JWT 기반 인증 ν•„ν„° 둜직 κ΅¬ν˜„
jsoonworld Jul 6, 2024
88ec082
[✨feat/#17]: HTTP 응닡 였λ₯˜ μ½”λ“œ 및 λ©”μ‹œμ§€ μ—…λ°μ΄νŠΈ
jsoonworld Jul 6, 2024
ace5f08
[✨feat/#17]: 인증 μ‹€νŒ¨ μ‹œ μ‚¬μš©μž μ •μ˜ 응닡 처리 κ΅¬ν˜„
jsoonworld Jul 6, 2024
abbeecf
[✨feat/#17]: μ›Ή λ³΄μ•ˆ 섀정을 μœ„ν•œ SecurityConfig 클래슀 κ΅¬ν˜„
jsoonworld Jul 6, 2024
dee84f0
[✨feat/#17]: User ν΄λž˜μŠ€μ— λ¦¬ν”„λ ˆμ‹œ 토큰 관리 κΈ°λŠ₯ μΆ”κ°€
jsoonworld Jul 6, 2024
48d6448
[✨feat/#17]: UserRepository에 μ‚¬μš©μž 인증 정보 검색 λ©”μ†Œλ“œ μΆ”κ°€
jsoonworld Jul 6, 2024
dd8e831
[✨feat/#17]: SignInRequest λ ˆμ½”λ“œ μ •μ˜ μΆ”κ°€
jsoonworld Jul 6, 2024
949aa70
[✨feat/#17]: Token 클래슀 μΆ”κ°€λ‘œ 토큰 관리 κ°•ν™”
jsoonworld Jul 6, 2024
5b5dff1
[✨feat/#17]: SignInResponse λ ˆμ½”λ“œ μ •μ˜ 및 λΉŒλ” νŒ¨ν„΄ 적용
jsoonworld Jul 6, 2024
dc360d4
[✨feat/#17]: TokenGetRequest λ ˆμ½”λ“œ μ •μ˜ 및 κ΅¬ν˜„
jsoonworld Jul 7, 2024
a8e6396
[✨feat/#17]: TokenGetResponse λ ˆμ½”λ“œ μ •μ˜ 및 κ΅¬ν˜„
jsoonworld Jul 7, 2024
fb02fc8
[✨feat/#17]: AuthService μΈν„°νŽ˜μ΄μŠ€ μ •μ˜ 및 인증 μ„œλΉ„μŠ€ λ©”μ†Œλ“œ κ΅¬ν˜„
jsoonworld Jul 7, 2024
69a8acd
[πŸ“‚Β file/#17]: auth κ΄€λ ¨ DTO와 μš”μ²­/응닡 클래슀 νŒ¨ν‚€μ§€ 이동
jsoonworld Jul 7, 2024
0ee5497
[✨feat/#17]: SignInServiceRequest λ ˆμ½”λ“œ κ΅¬ν˜„ 및 λΉŒλ” νŒ¨ν„΄ 적용
jsoonworld Jul 7, 2024
81274d0
[✨feat/#17]: SignInServiceResponse λ ˆμ½”λ“œ μ •μ˜ 및 λΉŒλ” νŒ¨ν„΄ κ΅¬ν˜„
jsoonworld Jul 7, 2024
890da24
[♻️ refactor/#17]: AuthService μΈν„°νŽ˜μ΄μŠ€μ— μ„œλΉ„μŠ€ νŠΉν™” 둜그인 λ©”μ†Œλ“œ λ³€κ²½
jsoonworld Jul 7, 2024
91d3147
[✨feat/#17]: μ‚¬μš©μž μ •μ˜ μ˜ˆμ™Έ UserException 클래슀 μΆ”κ°€
jsoonworld Jul 7, 2024
6b286a7
[♻️ refactor/#17]: AuthService μΈν„°νŽ˜μ΄μŠ€ κΈ°λŠ₯ ν™•μž₯
jsoonworld Jul 7, 2024
e9bd299
[✨feat/#17]: TokenGetServiceRequest λ ˆμ½”λ“œ μ •μ˜ 및 κ΅¬ν˜„
jsoonworld Jul 7, 2024
bc87a5a
[✨feat/#17]: TokenGetServiceResponse λ ˆμ½”λ“œ κ΅¬ν˜„ 및 μƒμ„±μž νŒ¨ν„΄ 적용
jsoonworld Jul 7, 2024
a3bb123
[✨feat/#17]: AuthService κ΅¬ν˜„μ„ ν†΅ν•œ μ‚¬μš©μž 인증 및 관리 κΈ°λŠ₯ ν™•μž₯
jsoonworld Jul 7, 2024
0398cd7
[βœ…Β chore/#17]: μ½”λ“œ 정렬을 ν†΅ν•œ κ°€μ‹œμ„± κ°œμ„ 
jsoonworld Jul 7, 2024
979cefd
[✨feat/#17]: UserServiceImpl ν΄λž˜μŠ€μ— μ‚¬μš©μž μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„
jsoonworld Jul 7, 2024
23ebd46
[✨feat/#17]: UserService μΈν„°νŽ˜μ΄μŠ€μ— deleteUser λ©”μ†Œλ“œ μ •μ˜
jsoonworld Jul 7, 2024
fa37dac
[βœ…chore/#18] .gitignore μˆ˜μ •(QueryDSL)
junggyo1020 Jul 7, 2024
2eccb99
[βœ…chore/#18] build.gradle μˆ˜μ •(QueryDSL)
junggyo1020 Jul 7, 2024
4c024d9
[βœ…chore/#18] QueryDSL μ„ΈνŒ…
junggyo1020 Jul 9, 2024
84aa224
[βœ…chore/#18] QueryDSL μ„ΈνŒ…
junggyo1020 Jul 9, 2024
b20bd3e
[βœ…chore/#20]: λͺ¨λ“  enum νƒ€μž… key κ°’ 0λΆ€ν„° μ‹œμž‘ν•˜λ„λ‘ μˆ˜μ •
JungYoonShin Jul 9, 2024
a7953d7
Merge pull request #19 from teamterning/feat/#18
JungYoonShin Jul 9, 2024
2a81205
Merge branch 'develop' into chore/#20
JungYoonShin Jul 9, 2024
7055914
[βœ…chore/#20] μ—λŸ¬ 및 성곡 λ©”μ‹œμ§€ ν•„λ“œ μˆ˜μ •
JungYoonShin Jul 9, 2024
ef40c4e
Merge pull request #21 from teamterning/chore/#20
JungYoonShin Jul 9, 2024
9af51b6
[✨ feat/#22] 탐색 > 쑰회수 λ§Žμ€ 곡고 dto 생성
JungYoonShin Jul 9, 2024
533b4f9
Merge branch 'develop' into feat/#22
JungYoonShin Jul 9, 2024
f75ce4f
[✨ feat/#22] 탐색 > 쑰회수 & 슀크랩 수 λ§Žμ€ 곡고 dto 생성
JungYoonShin Jul 9, 2024
8570084
Update Empty.txt
junggyo1020 Jul 10, 2024
1a9751a
[βœ…chore/#23] Connection Pool + Hikari CP μ„ΈνŒ…
junggyo1020 Jul 10, 2024
ea4c82e
Merge pull request #24 from teamterning/chore/#23
junggyo1020 Jul 10, 2024
f81c756
[✨ feat/#22] SearchController, SearchService κ΅¬ν˜„
JungYoonShin Jul 10, 2024
7ea6f66
Merge branch 'develop' into feat/#22
JungYoonShin Jul 10, 2024
17e4feb
[✨feat/#17]: 카카였 API 데이터 쑰회 Service κΈ°λŠ₯ κ΅¬ν˜„
jsoonworld Jul 10, 2024
5bd51bc
[πŸ”€merge/#17]: develop의 변경사항을 λ°˜μ˜ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
jsoonworld Jul 10, 2024
4296818
[✨feat/#17]: RestTemplate 빈 ꡬ성 μΆ”κ°€
jsoonworld Jul 10, 2024
51a90aa
[♻️refactor/#17]: μ‚¬μš©μž μ°ΎκΈ° μ‹€νŒ¨ μ˜ˆμ™Έ 처리 톡합
jsoonworld Jul 10, 2024
f81f318
[✨feat/#17]: Apple 데이터 쑰회λ₯Ό μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€ μΆ”κ°€
jsoonworld Jul 10, 2024
e427ea0
[✨feat/#17]: 카카였 데이터 쑰회λ₯Ό μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€ μΆ”κ°€
jsoonworld Jul 10, 2024
5069517
[✨ feat/#22] μ‘°νšŒμ‹œ 슀크랩순이 μ•„λ‹Œ 쑰회수순으둜 μˆ˜μ •
JungYoonShin Jul 10, 2024
86d7257
[✨ feat/#27] 탐색 > 슀크랩수 λ§Žμ€ 곡고 API κ΅¬ν˜„
JungYoonShin Jul 11, 2024
49b0c9d
[βœ’οΈ comment/#27] querydsl λ©”μ„œλ“œ 주석 μΆ”κ°€
JungYoonShin Jul 11, 2024
73d1922
[βœ… chore/#27] SuccessMessage 톡일성 μœ„ν•΄ message에 λ¬Έμž₯끝 '.' μƒλž΅
JungYoonShin Jul 11, 2024
74af538
[✨ feat/#27] D-Day 계산을 μœ„ν•œ DateUtil 생성
JungYoonShin Jul 11, 2024
158d943
[πŸ”¨Β fix/#27] 슀크랩수 λ§Žμ€ 곡고 service 둜직 μˆ˜μ •
JungYoonShin Jul 11, 2024
7c6d1d9
[βœ…Β chore/#27]: Swagger μ„€μ •
JungYoonShin Jul 11, 2024
378fc45
Merge pull request #26 from teamterning/feat/#22
JungYoonShin Jul 11, 2024
1fdee68
[☁️ db/#27]: μ—”ν‹°ν‹° ν•„λ“œ μˆ˜μ •
JungYoonShin Jul 11, 2024
e20dab3
[πŸ”¨fix/#29]: Scrap μ—”ν‹°ν‹° InternshipAnnouncement과의 관계 N:1둜 λ³€κ²½
JungYoonShin Jul 11, 2024
cd20f3c
[✨feat/#29]: 곡고 상세 정보 API κ΅¬ν˜„
JungYoonShin Jul 11, 2024
fabcfec
[☁️db/#29]: Filter μ—”ν‹°ν‹° ν•„λ“œ μˆ˜μ •
JungYoonShin Jul 11, 2024
aca162c
[πŸ”¨fix/#29] InternshipRepositoryImpl μˆ˜μ •
JungYoonShin Jul 11, 2024
7a9a5b9
Merge pull request #28 from teamterning/feat/#27
JungYoonShin Jul 12, 2024
197dcca
[πŸ”¨fix/#29]: 탐색 > 슀크랩 수 λ§Žμ€ 곡고 데이터 5개만 λ°˜ν™˜ν•˜λ„λ‘ μˆ˜μ •
JungYoonShin Jul 12, 2024
68c4e40
[☁️db/#29]: InternshipAnnouncement ν…Œμ΄λΈ” μ—”ν‹°ν‹° μˆ˜μ •
JungYoonShin Jul 12, 2024
06a4af1
[✨feat/#29] InternshipDetail Swagger μ„€μ •
JungYoonShin Jul 12, 2024
bf393fd
[✨feat/#31]: 곡고 상세 정보 νŽ˜μ΄μ§€ response body scrapCount ν•„λ“œ μΆ”κ°€
JungYoonShin Jul 12, 2024
dc2b0f6
[✨feat/#29]: 곡고 μƒμ„ΈνŽ˜μ΄μ§€ response body scrapCount ν•„λ“œ μΆ”κ°€
JungYoonShin Jul 12, 2024
60a9317
[✨feat/#31]: 검색 쑰건 κ΅¬ν˜„
JungYoonShin Jul 12, 2024
ce0d099
[✨feat/#31]: SearchResultResponse dto 생성
JungYoonShin Jul 12, 2024
15226ff
[✨feat/#31]: 검색 κ²°κ³Όν™”λ©΄ 둜직 κ΅¬ν˜„
JungYoonShin Jul 13, 2024
32437cd
[✨feat/#31]: User ν…Œμ΄λΈ” μˆ˜μ •
JungYoonShin Jul 13, 2024
7bc076a
[✨feat/#25] ν™ˆν™”λ©΄ > λ”± λ§žλŠ” λŒ€ν•™μƒ 인턴 곡고 API
junggyo1020 Jul 13, 2024
5abbd03
Merge branch 'develop' into feat/#25
junggyo1020 Jul 13, 2024
fe69f97
[✨feat/#25] ν™ˆν™”λ©΄ > λ”± λ§žλŠ” λŒ€ν•™μƒ 인턴 곡고 API
junggyo1020 Jul 13, 2024
dac0b23
Merge pull request #30 from teamterning/feat/#29
JungYoonShin Jul 13, 2024
647b61b
[πŸ”€merge/#25] Conflict ν•΄κ²°
junggyo1020 Jul 13, 2024
0d147d4
[πŸ”€merge/#25] Conflict ν•΄κ²°
junggyo1020 Jul 13, 2024
7abaf72
Merge pull request #32 from teamterning/feat/#25
junggyo1020 Jul 13, 2024
0823043
[✨feat/#33] ν™ˆν™”λ©΄ > 였늘 λ§ˆκ°λ˜λŠ” λŒ€ν•™μƒ 인턴 곡고 API
junggyo1020 Jul 13, 2024
afcb182
[πŸ“‚Β file/#31]: SearchService와 SearchServiceImpl 뢄리
JungYoonShin Jul 14, 2024
e924ebd
[⚰️ del/#31]: Swagger - @ApiResponses 제거
JungYoonShin Jul 14, 2024
8b17eeb
[✨feat/#31]: 검색 κ²°κ³Όν™”λ©΄ Swagger μ„€μ •
JungYoonShin Jul 14, 2024
9850ac2
Merge pull request #34 from teamterning/feat/#33
junggyo1020 Jul 14, 2024
72f8b28
[βœ…chore/#17]: 개발 ν™˜κ²½ μ„€μ • μ—…λ°μ΄νŠΈ 및 Q-Class μžλ™ 생성 μ½”λ“œ κ°±μ‹ 
jsoonworld Jul 15, 2024
f6fed36
[πŸ”€merge/#17]: git pull from develop branch
jsoonworld Jul 15, 2024
aa80e51
[⚰️del/#17]: Service layer dto 제거
jsoonworld Jul 15, 2024
f66e749
[♻️refactor/#17]: UserException -> CustomException
jsoonworld Jul 15, 2024
e0476aa
[✨feat/#17]: ValueConfig에 μƒˆλ‘œμš΄ μƒμˆ˜ μΆ”κ°€
jsoonworld Jul 15, 2024
1bc9493
[✨feat/#17]: SignInResponse λ ˆμ½”λ“œμ— userId와 authType ν•„λ“œ μΆ”κ°€
jsoonworld Jul 15, 2024
3f94ef1
[♻️refactor/#17]: Filter 클래슀의 startDate ν•„λ“œλ₯Ό startYear와 startMonth둜 뢄리
jsoonworld Jul 15, 2024
930595c
[♻️refactor/#17]: User ν΄λž˜μŠ€μ— ν•„λ“œ 및 μƒμ„±μž μ—…λ°μ΄νŠΈ
jsoonworld Jul 15, 2024
6a7f9ea
[✨feat/#17]: ErrorMessage μ—΄κ±°ν˜•μ— μƒˆλ‘œμš΄ μ—λŸ¬ λ©”μ‹œμ§€ μΆ”κ°€
jsoonworld Jul 15, 2024
7806a04
[✨feat/#17]: SuccessMessage μ—΄κ±°ν˜•μ— μƒˆλ‘œμš΄ 성곡 λ©”μ‹œμ§€ μΆ”κ°€
jsoonworld Jul 15, 2024
67faf30
[♻️refactor/#17]: JWT 인증 μ‹€νŒ¨ 처리 λ‘œμ§μ„ CustomException을 μ‚¬μš©ν•˜λ„λ‘ λ³€κ²½
jsoonworld Jul 15, 2024
010eab7
[♻️refactor/#17]: JwtAuthenticationFilter ν΄λž˜μŠ€μ—μ„œ ν•„ν„° 둜직 κ°œμ„  및 쀑볡 μ½”λ“œ 제거
jsoonworld Jul 15, 2024
eb3ab8c
[♻️refactor/#17]: JwtTokenProvider ν΄λž˜μŠ€μ—μ„œ λΆˆν•„μš”ν•œ 쀑볡 μ½”λ“œ 제거 및 JSON μœ ν‹Έλ¦¬ν‹° μΆ”κ°€
jsoonworld Jul 15, 2024
4f87a1e
[✨feat/#17]: JWT μœ νš¨μ„± 검사 μœ ν˜•μ„ μœ„ν•œ enum μΆ”κ°€
jsoonworld Jul 15, 2024
b81b025
[♻️refactor/#17]: UserRepository μΈν„°νŽ˜μ΄μŠ€μ— μƒˆλ‘œμš΄ 쑰회 λ©”μ„œλ“œ μΆ”κ°€
jsoonworld Jul 15, 2024
e268cb0
[♻️refactor/#17]: AuthService μΈν„°νŽ˜μ΄μŠ€μ˜ λ©”μ„œλ“œ μ‹œκ·Έλ‹ˆμ²˜ 및 λ°˜ν™˜ νƒ€μž… μ—…λ°μ΄νŠΈ
jsoonworld Jul 15, 2024
cba67c8
[♻️refactor/#17]: AuthServiceImplμ—μ„œ 인증 및 토큰 κ΄€λ ¨ 둜직 κ°•ν™”
jsoonworld Jul 15, 2024
b7f35bc
[♻️refactor/#17]: KakaoServiceImplμ—μ„œ μ†Œμ…œ 둜그인 μ˜ˆμ™Έ 처리 둜직 μ—…λ°μ΄νŠΈ
jsoonworld Jul 15, 2024
cf6dd1c
[✨feat/#17]: UserServiceImpl의 deleteUser λ©”μ„œλ“œμ— μ˜ˆμ™Έ 처리 둜직 μΆ”κ°€
jsoonworld Jul 15, 2024
8025f83
[✨feat/#17]: SignUpService에 νšŒμ› 정보 μ—…λ°μ΄νŠΈ 둜직 κ΅¬ν˜„
jsoonworld Jul 15, 2024
f4ce4f8
[✨feat:/#17]: SignUpFilterService에 νšŒμ› ν•„ν„° 정보 등둝 κΈ°λŠ₯ μΆ”κ°€
jsoonworld Jul 15, 2024
90eb95c
[✨feat:/#17]: AppleServiceImplμ—μ„œ μ• ν”Œ 곡개 ν‚€λ₯Ό μ²˜λ¦¬ν•˜λŠ” 둜직 κ΅¬ν˜„
jsoonworld Jul 15, 2024
ced8055
[✨feat/#17]: FilterRepository μΈν„°νŽ˜μ΄μŠ€ μΆ”κ°€
jsoonworld Jul 15, 2024
20abc0c
[✨feat/#17]: SignUpFilterResponse λ ˆμ½”λ“œ μΆ”κ°€
jsoonworld Jul 15, 2024
c948cc6
[✨feat:/#17]: SignUpFilterRequest λ ˆμ½”λ“œ κ΅¬ν˜„
jsoonworld Jul 15, 2024
308ef24
[✨feat:/#17]: SignUpRequest λ ˆμ½”λ“œ μΆ”κ°€ 및 λΉŒλ” λ©”μ„œλ“œ κ΅¬ν˜„
jsoonworld Jul 15, 2024
bc73026
[✨feat/#17]: AuthController의 인증 및 μ‚¬μš©μž 관리 μ—”λ“œν¬μΈνŠΈ μΆ”κ°€ 및 μˆ˜μ •
jsoonworld Jul 15, 2024
84ea4c9
[πŸ”€merge/#17]: merge develop
jsoonworld Jul 15, 2024
a8a42a2
[✨feat/#31]: Swagger μ„€μ •
JungYoonShin Jul 15, 2024
9224c12
[♻️ refactor/#31]: Swagger μ„€μ • λ³€κ²½
JungYoonShin Jul 15, 2024
86f06b1
[βœ…chore/#17]: ValueConfig ν΄λž˜μŠ€μ— ν™˜κ²½ λ³€μˆ˜ 별칭 μΆ”κ°€
jsoonworld Jul 15, 2024
1a75425
[πŸ”€Β merge/#31]: developκ³Ό 병합, conflicts ν•΄κ²°
JungYoonShin Jul 15, 2024
970aa43
[♻️ refactor/#31]: 리슀트의 경우 Stream.toList()둜 λ³€κ²½
JungYoonShin Jul 15, 2024
b00ce31
[✨feat/#17]: Swagger API λ¬Έμ„œν™”λ₯Ό μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€ μΆ”κ°€
jsoonworld Jul 15, 2024
5177a65
[✨feat/#36] μΊ˜λ¦°λ” > μ›”κ°„ μΊ˜λ¦°λ”(κΈ°λ³Έ λ·°) 정보 쑰회 API
junggyo1020 Jul 15, 2024
890fffe
[✨feat/#36] μΊ˜λ¦°λ” > μ›”κ°„ μΊ˜λ¦°λ”(κΈ°λ³Έ λ·°) 정보 쑰회 API
junggyo1020 Jul 15, 2024
55fcbf5
[✨ feat/#39]: 슀크랩 Controller κ΅¬ν˜„
JungYoonShin Jul 15, 2024
9509c2b
[✨feat/#36] μΊ˜λ¦°λ” > μ›”κ°„ μΊ˜λ¦°λ”(κΈ°λ³Έ λ·°) 정보 쑰회 API
junggyo1020 Jul 15, 2024
13f1417
Merge pull request #37 from teamterning/feat/#36
junggyo1020 Jul 15, 2024
2a11720
[♻️refactor/#17]: Response와 Request 클래슀 이름을 ResponseDto와 RequestDto둜 λ³€κ²½
jsoonworld Jul 15, 2024
9d3b2a5
[✨feat/#39]: 인턴 곡고 id둜 인턴곡고 μ°ΎλŠ” 둜직 κ΅¬ν˜„
JungYoonShin Jul 15, 2024
c1a7fb4
[♻️refactor:/#17]: Swagger μ„€μ •
jsoonworld Jul 15, 2024
c883a56
[✨feat/#40] μΊ˜λ¦°λ” > μ›”κ°„ μΊ˜λ¦°λ”(리슀트 λ·°) 정보 쑰회 API
junggyo1020 Jul 15, 2024
7a448d1
[✨feat/#39]: Swagger μ„€μ •
JungYoonShin Jul 15, 2024
60dcc57
[✨feat/#39]: ScrapControllerκ°€ ScrapSwagger μƒμ†ν•˜λ„λ‘ μ„€μ •
JungYoonShin Jul 15, 2024
a6ce7da
Merge pull request #41 from teamterning/feat/#40
junggyo1020 Jul 15, 2024
d90f9fd
[♻️refactor/#17]: Swagger μž¬μ„€μ •
jsoonworld Jul 15, 2024
962b75f
[✨feat/#42] μΊ˜λ¦°λ” > 일간 μΊ˜λ¦°λ”(리슀트 λ·°) 정보 쑰회 API
junggyo1020 Jul 15, 2024
801f4fc
[✨feat/#39]: 슀크랩 색상 μˆ˜μ • API κ΅¬ν˜„
JungYoonShin Jul 15, 2024
badd607
[πŸ”€Β merge/#31]: develop 병합, conflicts ν•΄κ²°
JungYoonShin Jul 15, 2024
c4b26a1
[♻️ refactor/#31] 가독성을 μœ„ν•œ 띄어쓰기
JungYoonShin Jul 15, 2024
5e51e1d
Merge pull request #38 from teamterning/feat/#31
JungYoonShin Jul 15, 2024
043536e
Merge branch 'develop' into feat/#42
junggyo1020 Jul 15, 2024
faf2b58
[✨feat/#44] λ§ˆμ΄νŽ˜μ΄μ§€ > ν”„λ‘œν•„ 정보 쑰회 API
junggyo1020 Jul 15, 2024
41896f0
[♻️refactor/#17]: μ‚¬μš©μžμ™€ ν•„ν„° μ—°κ²° 둜직 λ¦¬νŒ©ν„°λ§ 및 νŠΈλžœμž­μ…˜ 뢄리
jsoonworld Jul 15, 2024
cfe5911
[♻️refactor/#17]: print code 제거
jsoonworld Jul 15, 2024
407870c
[πŸ”¨fix/#39]: 검색 API, sortBy ν•„μˆ˜λ‘œ 받지 μ•Šκ²Œ μˆ˜μ •
JungYoonShin Jul 15, 2024
ca74046
[πŸ“‚Β file/#39]: dto κ΄€λ ¨ 파일λͺ… 끝에 Dto 뢙이기
JungYoonShin Jul 15, 2024
e46f219
[♻️refactor/#17]: λ‘œκ·Έμ•„μ›ƒ API의 νŒŒλΌλ―Έν„° 정리
jsoonworld Jul 15, 2024
d678a0f
[♻️refactor/#17]: λ‘œκ·Έμ•„μ›ƒ API μ‚¬μš©μž ID 처리 방식 λ³€κ²½ 및 Swagger λ¬Έμ„œ 정리
jsoonworld Jul 15, 2024
dc48650
[♻️refactor/#17]: 쀄 λ°”κΏˆ λ³€κ²½
jsoonworld Jul 15, 2024
22dffc4
[βœ…chore/#17]: PostgreSQL λ°μ΄ν„°λ² μ΄μŠ€ URL μˆ˜μ • 및 μ€‘λ³΅λœ URL 제거
jsoonworld Jul 15, 2024
00805b3
Merge pull request #43 from teamterning/feat/#42
junggyo1020 Jul 15, 2024
4d2c709
Merge branch 'develop' into feat/#44
junggyo1020 Jul 15, 2024
be09282
Merge pull request #45 from teamterning/feat/#44
junggyo1020 Jul 15, 2024
54df71c
Merge branch 'develop' into feat/#39
junggyo1020 Jul 15, 2024
c7f7607
Merge branch 'feat/#48' into feat/#17
jsoonworld Jul 15, 2024
54866f5
Merge pull request #49 from teamterning/feat/#17
jsoonworld Jul 15, 2024
b390f0d
Merge pull request #46 from teamterning/feat/#39
JungYoonShin Jul 16, 2024
35ac32e
[πŸ“‚Β file/#47]: InternshipDetailService μΈν„°νŽ˜μ΄μŠ€ν™”
JungYoonShin Jul 16, 2024
12e7573
[πŸ”¨ fix/#51] νƒ€μž… μˆ˜μ •
junggyo1020 Jul 16, 2024
843fdc2
[✨feat/#47]: 필터링 정보 및 μž¬μ„€μ • 둜직 κ΅¬ν˜„
JungYoonShin Jul 16, 2024
feecce2
[πŸ”¨ fix/#51] ν˜•μ‹ μˆ˜μ •
junggyo1020 Jul 16, 2024
6cd3f05
[♻️refactor:/17]: AuthServiceImpl λ¦¬νŒ©ν† λ§ 및 ν•¨μˆ˜ νŒŒλΌλ―Έν„° μˆ˜μ •
jsoonworld Jul 16, 2024
d53f17c
[♻️refactor/#17]: SignUpFilterService λΆˆν•„μš”ν•œ μ½”λ“œ 제거 및 λ©”μ„œλ“œ λ¦¬νŒ©ν† λ§
jsoonworld Jul 16, 2024
857c912
[♻️refactor/#17]: Filter 클래슀 ν•„λ“œ 정리 및 μ–΄λ…Έν…Œμ΄μ…˜ μˆ˜μ •
jsoonworld Jul 16, 2024
b636beb
[♻️refactor/#17]: AuthController 토큰 μž¬λ°œκΈ‰ μ—”λ“œν¬μΈνŠΈ μΆ”κ°€
jsoonworld Jul 16, 2024
45681be
[✨feat/#17]: nimbus-jose-jwt 라이브러리
jsoonworld Jul 16, 2024
2543671
[♻️refactor/#17]: User 클래슀 ν•„λ“œ 및 λ©”μ„œλ“œ μˆ˜μ •
jsoonworld Jul 16, 2024
c770418
Merge pull request #53 from teamterning/feat/#17
jsoonworld Jul 16, 2024
1d2a5ec
[✨feat/#47]: Swagger μ„€μ •
JungYoonShin Jul 16, 2024
4c3a9bd
[πŸ”€Β merge/#47]: developκ³Ό 병합, conflicts ν•΄κ²°
JungYoonShin Jul 16, 2024
aec75c5
[♻️refactor/#17]: ErrorMessage μ—΄κ±°ν˜• μ½”λ“œ 정리 및 λ©”μ‹œμ§€ μˆ˜μ •
jsoonworld Jul 16, 2024
e05f60c
Merge pull request #54 from teamterning/feat/#47
junggyo1020 Jul 16, 2024
42b3fbe
Merge pull request #52 from teamterning/fix/#51
junggyo1020 Jul 16, 2024
6e2559f
[πŸ”€merge/#55] 배포λ₯Ό μœ„ν•œ μƒˆ 브랜치 생성 및 ν…ŒμŠ€νŠΈ
junggyo1020 Jul 16, 2024
e6f7f0c
[πŸ“file]: μ„œλΈŒλͺ¨λ“ˆ μ‚­μ œ
JungYoonShin Jul 16, 2024
40caf46
[✨feat/#55]: PrincipalHandler 클래슀 μΆ”κ°€
jsoonworld Jul 16, 2024
155ae11
[♻️refactor/#55]: ErrorMessage 쀑볡 및 λˆ„λ½ μˆ˜μ •
jsoonworld Jul 16, 2024
d9cf5f9
[πŸ“file]: μ„œλΈŒλͺ¨λ“ˆ μ‚­μ œ
JungYoonShin Jul 16, 2024
a2f7402
[πŸ”€merge/#55] 배포λ₯Ό μœ„ν•œ μƒˆ 브랜치 생성 및 ν…ŒμŠ€νŠΈ
junggyo1020 Jul 16, 2024
65db377
.
jsoonworld Jul 16, 2024
1daffac
[πŸ“file]: μ„œλΈŒλͺ¨λ“ˆ μ‚­μ œ
JungYoonShin Jul 16, 2024
8cb6874
[πŸ“file]: μ„œλΈŒλͺ¨λ“ˆ μ‚­μ œ
JungYoonShin Jul 16, 2024
67dea14
.
jsoonworld Jul 16, 2024
81bf914
[πŸ”€merge/#55] 배포λ₯Ό μœ„ν•œ μƒˆ 브랜치 생성 및 ν…ŒμŠ€νŠΈ 진행
junggyo1020 Jul 16, 2024
9926106
Merge pull request #59 from teamterning/merge/#55
junggyo1020 Jul 16, 2024
f32ba87
[πŸ”€merge/#55] .gitignore μˆ˜μ •
junggyo1020 Jul 16, 2024
02380a4
Merge branch 'main' into develop
junggyo1020 Jul 16, 2024
3f7e0ce
[πŸ”€merge/#55] valueConfig μˆ˜μ •
junggyo1020 Jul 17, 2024
63f02fd
[πŸ”€fix/#62] application.yml μˆ˜μ •
junggyo1020 Jul 17, 2024
d614b05
Merge pull request #62 from teamterning/fix/#62
junggyo1020 Jul 17, 2024
bc7f424
Update SecurityConfig.java
junggyo1020 Jul 17, 2024
cc4e507
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
e2d07e2
Merge pull request #64 from teamterning/!hotfix/#63
junggyo1020 Jul 17, 2024
781fb18
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
502f744
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
cc627ba
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
0ed381d
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
c1b57df
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
93b7372
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
66afccf
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
d217dec
[πŸ”₯!hotfix/#develop] CORS μ—λŸ¬ ν•΄κ²°
jsoonworld Jul 17, 2024
a511656
Update AuthController.java
junggyo1020 Jul 17, 2024
9ca05e7
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 17, 2024
56a1582
[✨feat/#68]: 슀크랩 & 필터링 μœ μ € 정보 κ°€μ Έμ˜€λŠ” 둜직 κ΅¬ν˜„
JungYoonShin Jul 17, 2024
5810e51
[πŸ”¨fix/#68]: 탐색 및 곡고 μƒμ„ΈνŽ˜μ΄μ§€ μˆ˜μ •
JungYoonShin Jul 17, 2024
0f1ac9e
Merge pull request #69 from teamterning/fix/#68
JungYoonShin Jul 17, 2024
e03226b
[πŸ”¨fix/#70]: 곡고 상세 νŽ˜μ΄μ§€ 쑰회수 둜직 μˆ˜μ •, 슀크랩 μΆ”κ°€/μ·¨μ†Œ 둜직 μˆ˜μ •
JungYoonShin Jul 17, 2024
a8e2df0
[πŸ”¨ fix/#70]: reissue μ‹œμ— dtoλͺ… λ³€κ²½
JungYoonShin Jul 17, 2024
4edf5de
[✨fix/#66] μΊ˜λ¦°λ” κ΄€λ ¨ 둜직 & ν™ˆν™”λ©΄ > 맞좀곡고 μΆ”κ°€ μˆ˜μ •
junggyo1020 Jul 17, 2024
5a82aa9
[πŸ”¨fix/#70]: 곡고 상세 정보 νŽ˜μ΄μ§€ scrapId λ°˜ν™˜ν•˜λ„λ‘ μˆ˜μ •
JungYoonShin Jul 17, 2024
4368780
Merge pull request #71 from teamterning/fix/#70
JungYoonShin Jul 17, 2024
a5b28cf
[πŸ”¨fix]: λ‘œμ§μˆ˜μ •
JungYoonShin Jul 17, 2024
cc68ed7
Merge pull request #72 from teamterning/fix/#70
JungYoonShin Jul 17, 2024
c1fee2e
[πŸ”¨fix#70]: 이슈 μž¬λ°œκΈ‰ dto λ³€κ²½
JungYoonShin Jul 17, 2024
6e0aa2e
Merge pull request #73 from teamterning/fix/#70
JungYoonShin Jul 17, 2024
029fb58
[✨fix/#66] μΊ˜λ¦°λ” κ΄€λ ¨ 둜직 & ν™ˆν™”λ©΄ > 맞좀곡고 μΆ”κ°€ μˆ˜μ •
junggyo1020 Jul 17, 2024
2a19e26
Merge pull request #74 from teamterning/fix/#66
junggyo1020 Jul 17, 2024
0334b72
[✨fix/#66] gitignore μˆ˜μ •
junggyo1020 Jul 17, 2024
b462a71
[♻️ refactor/#67]: μ½”λ“œ 재배치 및 λ³€μˆ˜ ν• λ‹Ή 였λ₯˜ μˆ˜μ •
jsoonworld Jul 17, 2024
3c7855f
[♻️refactor/#76]: 토큰 μž¬λ°œκΈ‰ 둜직 κ°œμ„  및 μ½”λ“œ 정리
jsoonworld Jul 17, 2024
7b2f978
[πŸ”¨fix/#75]: 필터링 κ΄€λ ¨ API μœ μ € κ°€μ Έμ˜€λŠ” 둜직 μˆ˜μ •
JungYoonShin Jul 17, 2024
99f4199
Merge pull request #77 from teamterning/refactor/#76
JungYoonShin Jul 17, 2024
6960606
Merge branch 'develop' into fix/#75
JungYoonShin Jul 17, 2024
58a2bf9
Merge pull request #78 from teamterning/fix/#75
JungYoonShin Jul 17, 2024
852cacb
[πŸ”¨Β fix/#67]: 슀크랩, 필터링, 인턴십 곡고 상세 API μœ μ € κ΄€λ ¨λ‘œμ§ μˆ˜μ •
jsoonworld Jul 18, 2024
f1e95bb
[♻️ refactor]: μ• ν”Œλ‘œκ·ΈμΈ λ°˜ν™˜ 둜직 μˆ˜μ • 및 토큰 생성 둜직 μˆ˜μ •
jsoonworld Jul 18, 2024
29c6ee8
[πŸ”¨Β fix/#67]: 토큰 μž¬λ°œκΈ‰ κ΄€λ ¨ 둜직 μˆ˜μ •
jsoonworld Jul 18, 2024
4eeb991
Merge branch 'develop' into refactor/#67
jsoonworld Jul 18, 2024
f567bef
Merge pull request #80 from teamterning/refactor/#67
jsoonworld Jul 18, 2024
2e5b9fb
Delete src/main/resources directory
jsoonworld Jul 18, 2024
f253090
Update .gitignore
jsoonworld Jul 18, 2024
273ce60
[πŸ”¨Β fix/#67]: 토큰 μž¬λ°œκΈ‰ 둜직 λ³€κ²½
jsoonworld Jul 18, 2024
954a494
[βœ…chore/#67]: gitignore μˆ˜μ •
jsoonworld Jul 18, 2024
6ee7ef0
[βœ…chore/#67]: gitignore μˆ˜μ •
jsoonworld Jul 18, 2024
2c183be
[βœ…chore/#67]: gitignore μˆ˜μ •
jsoonworld Jul 18, 2024
cdec6ac
[βœ…chore/#67]: yml μ‚­μ œ
jsoonworld Jul 18, 2024
56015a1
Merge pull request #81 from teamterning/refactor/#67
junggyo1020 Jul 18, 2024
5a55e3b
[✨fix/#66] μΊ˜λ¦°λ” κ΄€λ ¨ 둜직 μˆ˜μ •
junggyo1020 Jul 18, 2024
90fecbb
[πŸ”¨fix/#82]: 필터링 μž¬μ„€μ • dto μˆ˜μ •
JungYoonShin Jul 18, 2024
998ce42
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 18, 2024
df7dbe9
[πŸ”₯!hotfix/#63] CORS μ—λŸ¬ ν•΄κ²°
junggyo1020 Jul 18, 2024
5c8246d
[πŸ”¨fiX/#82]: COLOR enum ν—₯사값 λ³€κ²½
JungYoonShin Jul 18, 2024
842a4e4
Merge pull request #83 from teamterning/feat/#82
JungYoonShin Jul 18, 2024
763b850
[πŸ”₯!hotfix/#84] ν™ˆ > λ‚˜μ—κ²Œ λ”±λ§žλŠ” 인턴 곡고 쑰회 응닡 데이터 λ³€κ²½
junggyo1020 Jul 18, 2024
76a88a5
Merge pull request #85 from teamterning/!hotfix/#84
junggyo1020 Jul 18, 2024
27bbd6a
[πŸ”¨ fix/#82]: 필터링 μž¬μ„€μ • 둜직 였λ₯˜ μˆ˜μ •
JungYoonShin Jul 18, 2024
0b9bb07
Merge pull request #86 from teamterning/feat/#82
JungYoonShin Jul 18, 2024
6679fc3
[πŸ”¨fix/#82]: 필터릴 μž¬μ„€μ • 둜직 μˆ˜μ •
JungYoonShin Jul 18, 2024
5d49776
Merge pull request #87 from teamterning/feat/#82
JungYoonShin Jul 18, 2024
891bf77
[πŸ”₯!hotfix/#84] ν™ˆ > λ‚˜μ—κ²Œ λ”±λ§žλŠ” 인턴 곡고 쑰회 응닡 데이터 λ³€κ²½
junggyo1020 Jul 18, 2024
7b53243
[πŸ”₯!hotfix/#88] 탐색 > 검색 κ²°κ³Ό ν™”λ©΄ 응닡 데이터 λ³€κ²½
junggyo1020 Jul 19, 2024
7fdf253
Merge pull request #89 from teamterning/!hotfix/#88
junggyo1020 Jul 19, 2024
c26a95d
[✨ feat/#91]: μ‚¬μš©μžκ°€ ν•΄λ‹Ή 곡고λ₯Ό 이미 μŠ€ν¬λž©ν–ˆμ„ 경우 μ˜ˆμ™Έμ²˜λ¦¬ 둜직 μΆ”κ°€
JungYoonShin Jul 19, 2024
dc381d9
Merge pull request #92 from teamterning/hotfix/#91
JungYoonShin Jul 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Terning
Submodule Terning added at e53017
61 changes: 54 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,14 @@ java {
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

ext {
set('queryDslVersion', "5.0.0")
}

dependencies {

//default
Expand All @@ -41,8 +39,57 @@ dependencies {

//Health-check
implementation 'org.springframework.boot:spring-boot-starter-actuator'

//QueryDSL
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

//validation
// implementation 'ort.springframework.boot:spring-boot-starter-validation'

//JWT
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'
implementation 'com.nimbusds:nimbus-jose-jwt:3.10'

// security
implementation 'org.springframework.boot:spring-boot-starter-security'

// gson
implementation 'com.google.code.gson:gson:2.8.6'

}

//QueryDSL 초기 μ„€μ •
//1. Q-Classλ₯Ό 생성할 디렉토리 경둜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
def queryDslSrcDir = 'src/main/generated/querydsl/'

//2. JavaCompile Taskλ₯Ό μˆ˜ν–‰ν•˜λŠ” 경우 생성될 μ†ŒμŠ€μ½”λ“œμ˜ 좜λ ₯ 디렉토리λ₯Ό queryDslSrcDir둜 μ„€μ •ν•©λ‹ˆλ‹€.
tasks.withType(JavaCompile).configureEach {
options.getGeneratedSourceOutputDirectory().set(file(queryDslSrcDir))
}

//3. μ†ŒμŠ€ μ½”λ“œλ‘œ 인식할 디렉토리 κ²½λ‘œμ— Q-Class νŒŒμΌμ„ μΆ”κ°€ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ Q-Classκ°€ 일반 Java 클래슀처럼 μ·¨κΈ‰λ˜μ–΄ 컴파일과 μ‹€ν–‰ μ‹œ classPath에 ν¬ν•¨λ©λ‹ˆλ‹€.
sourceSets {
main.java.srcDirs += [queryDslSrcDir]
}

//4. clean Taskλ₯Ό μˆ˜ν–‰ν•˜λŠ” 경우 μ§€μ •ν•œ 디렉토리λ₯Ό μ‚­μ œν•˜λ„λ‘ μ„€μ •ν•©λ‹ˆλ‹€. -> μžλ™ μƒμ„±λœ Q-Classλ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.
clean {
delete file(queryDslSrcDir)
}

//5. QueryDSLκ³Ό κ΄€λ ¨λœ λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ΄ 컴파일 μ‹œμ μ—λ§Œ ν•„μš”ν•˜λ„λ‘ μ„€μ •ν•©λ‹ˆλ‹€. λ˜ν•œ, QueryDSL 섀정을 컴파일 클래슀 νŒ¨μŠ€μ— μΆ”κ°€ν•©λ‹ˆλ‹€.
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}

tasks.named('test') {
useJUnitPlatform()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@EnableJpaAuditing
@SpringBootApplication
public class TerningserverApplication {

Expand Down
19 changes: 19 additions & 0 deletions src/main/java/org/terning/terningserver/config/QuerydslConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.terning.terningserver.config;

import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class QuerydslConfig {

@PersistenceContext
private EntityManager entityManager;

@Bean
public JPAQueryFactory jpaQueryFactory(){
return new JPAQueryFactory(entityManager);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.terning.terningserver.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
52 changes: 52 additions & 0 deletions src/main/java/org/terning/terningserver/config/SecurityConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.terning.terningserver.config;

import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.DefaultSecurityFilterChain;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import org.terning.terningserver.jwt.CustomJwtAuthenticationEntryPoint;
import org.terning.terningserver.jwt.JwtAuthenticationFilter;

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig {

private final JwtAuthenticationFilter jwtAuthenticationFilter;
private final CustomJwtAuthenticationEntryPoint customJwtAuthenticationEntryPoint;
private static final String[] AUTH_WHITELIST = {
"/v3/api-docs/**",
"/swagger-ui.html",
"/api/v1/swagger-ui/index.html#/**",
"/swagger-resources/**",
"/swagger-ui/**",
"/api/v1/auth/**",
"/actuator/health"
};

@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.formLogin(AbstractHttpConfigurer::disable)
.sessionManagement(sessionManagement ->
sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
)
.exceptionHandling(exceptionHandling ->
exceptionHandling.authenticationEntryPoint(customJwtAuthenticationEntryPoint))
.authorizeHttpRequests(auth -> {
auth.requestMatchers(AUTH_WHITELIST).permitAll();
auth.anyRequest().authenticated();
})
.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.terning.terningserver.config;

import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.servers.Server;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
Expand All @@ -9,6 +11,11 @@
import org.springframework.context.annotation.Configuration;

@Configuration
@OpenAPIDefinition(
servers = {
@Server(url = "/", description = "Default Server url")
}
)
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
Expand Down
53 changes: 53 additions & 0 deletions src/main/java/org/terning/terningserver/config/ValueConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package org.terning.terningserver.config;

import jakarta.annotation.PostConstruct;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

@Configuration
@Getter
public class ValueConfig {

@Value("${jwt.secret-key}")
private String secretKey;

@Value("${jwt.kakao-url}")
private String kakaoUri;

@Value("${jwt.apple-url}")
private String appleUri;

@Value("${jwt.access-token-expired}")
private Long accessTokenExpired;

@Value("${jwt.refresh-token-expired}")
private Long refreshTokenExpired;

public static final String IOS_FORCE_UPDATE_VERSION = "0.0.9";
public static final String IOS_APP_VERSION = "1.0.0";
public static final String ANDROID_FORCE_UPDATE_VERSION = "1.0.1";
public static final String ANDROID_APP_VERSION = "1.0.1";
public static final String NOTIFICATION_TITLE = "μƒˆλ‘œμš΄ 버전이 μ—…λ°μ΄νŠΈ λ˜μ—ˆμ–΄μš”!";
public static final String NOTIFICATION_CONTENT = "μ•ˆμ •μ μΈ μ„œλΉ„μŠ€ μ‚¬μš©μ„ μœ„ν•΄\nμ΅œμ‹ λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈ ν•΄μ£Όμ„Έμš”.";
public static final String TOKEN_VALUE_DELIMITER = "\\.";
public static final String BEARER_HEADER = "Bearer ";
public static final String BLANK = "";
public static final String MODULUS = "n";
public static final String EXPONENT = "e";
public static final String KID_HEADER_KEY = "kid";
public static final String ALG_HEADER_KEY = "alg";
public static final String RSA = "RSA";
public static final String KEY = "keys";
public static final String ID = "sub";
public static final int QUOTES = 1;
public static final int POSITIVE_NUMBER = 1;

@PostConstruct
protected void init() {
secretKey = Base64.getEncoder().encodeToString(secretKey.getBytes(StandardCharsets.UTF_8));
}
}
18 changes: 18 additions & 0 deletions src/main/java/org/terning/terningserver/config/WebMvcConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.terning.terningserver.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration

public class WebMvcConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:8080", "http://localhost:3000", "https://www.terning-official.p-e.kr/") // ν—ˆμš©ν•  좜처 : νŠΉμ • λ„λ©”μΈλ§Œ 받을 수 있음
.allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH") // ν—ˆμš©ν•  HTTP method
.allowCredentials(true); // μΏ ν‚€ 인증 μš”μ²­ ν—ˆμš©
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package org.terning.terningserver.controller;

import lombok.RequiredArgsConstructor;
import lombok.val;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
import org.terning.terningserver.controller.swagger.AuthSwagger;
import org.terning.terningserver.domain.Filter;
import org.terning.terningserver.domain.User;
import org.terning.terningserver.dto.auth.request.SignInRequestDto;
import org.terning.terningserver.dto.auth.request.SignUpFilterRequestDto;
import org.terning.terningserver.dto.auth.request.SignUpRequestDto;
import org.terning.terningserver.dto.auth.response.SignInResponseDto;
import org.terning.terningserver.dto.auth.response.SignUpFilterResponseDto;
import org.terning.terningserver.dto.auth.response.SignUpResponseDto;
import org.terning.terningserver.dto.auth.response.TokenGetResponseDto;
import org.terning.terningserver.exception.dto.SuccessResponse;
import org.terning.terningserver.service.AuthService;
import org.terning.terningserver.service.SignUpFilterService;
import org.terning.terningserver.service.SignUpService;

import java.security.Principal;

import static org.terning.terningserver.exception.enums.SuccessMessage.*;


@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/auth")
public class AuthController implements AuthSwagger {

private final AuthService authService;
private final SignUpService signUpService;
private final SignUpFilterService signUpFilterService;

@PostMapping("/sign-in")
public ResponseEntity<SuccessResponse<SignInResponseDto>> signIn(
@RequestHeader("Authorization") String authAccessToken,
@RequestBody SignInRequestDto request
) {
val signInResponse = authService.signIn(authAccessToken, request);

return ResponseEntity.ok(SuccessResponse.of(SUCCESS_SIGN_IN, signInResponse));
}

// TODO: μ—λŸ¬ λ©”μ‹œμ§€ μœ„μΉ˜
@PostMapping("/token-reissue")
public ResponseEntity<SuccessResponse<TokenGetResponseDto>> reissueToken(
@RequestHeader("Authorization") String refreshToken
) {
val response = authService.reissueToken(refreshToken);

return ResponseEntity.ok(SuccessResponse.of(SUCCESS_REISSUE_TOKEN, response));
}

@PostMapping("/sign-up")
public ResponseEntity<SuccessResponse<SignUpResponseDto>> signUp(
@RequestHeader("authId") String authId,
@RequestBody SignUpRequestDto request
) {

SignUpResponseDto signUpResponseDto = signUpService.signUp(authId, request.name(), request.profileImage(), request.authType());
return ResponseEntity.ok(SuccessResponse.of(SUCCESS_SIGN_UP, signUpResponseDto));
}

@PostMapping("/sign-up/filter")
public ResponseEntity<SuccessResponse<SignUpFilterResponseDto>> filter(
@RequestHeader("User-Id") Long userId,
@RequestBody SignUpFilterRequestDto request
) {
// ν•„ν„° 생성 및 μ €μž₯
Filter newFilter = signUpFilterService.createAndSaveFilter(request);

// μ‚¬μš©μžμ—κ²Œ ν•„ν„° μ—°κ²°
signUpFilterService.connectFilterToUser(userId, newFilter.getId());

return ResponseEntity.ok(SuccessResponse.of(SUCCESS_SIGN_UP_FILTER));
}

@PostMapping("/logout")
public ResponseEntity<SuccessResponse> signOut(@AuthenticationPrincipal Long userId) {

authService.signOut(userId);

return ResponseEntity.ok(SuccessResponse.of(SUCCESS_SIGN_OUT));
}
@DeleteMapping("/withdraw")
public ResponseEntity<SuccessResponse> withdraw(@AuthenticationPrincipal Long userId) {

authService.withdraw(userId);

return ResponseEntity.ok(SuccessResponse.of(SUCCESS_WITHDRAW));
}
}
Loading
Loading