Skip to content

Commit 3847683

Browse files
committed
feat: userId만 필요한경우, InternalAuth를 사용하도록 수정한다
1 parent 86f4d49 commit 3847683

File tree

9 files changed

+56
-30
lines changed

9 files changed

+56
-30
lines changed

src/main/kotlin/org/gitanimals/core/advice/GlobalExceptionHandler.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.gitanimals.core.advice
22

3+
import org.gitanimals.core.AuthorizationException
34
import org.gitanimals.core.ErrorResponse
45
import org.slf4j.LoggerFactory
56
import org.springframework.http.HttpStatus
@@ -52,4 +53,9 @@ class GlobalExceptionHandler {
5253
fun handleNoHandlerFoundException(exception: Exception): ErrorResponse {
5354
return ErrorResponse("CANNOT FOUND ANY RESOURCE.")
5455
}
56+
57+
@ExceptionHandler(AuthorizationException::class)
58+
@ResponseStatus(HttpStatus.UNAUTHORIZED)
59+
fun handleAuthorizationException(exception: AuthorizationException): ErrorResponse =
60+
ErrorResponse.from(exception)
5561
}

src/main/kotlin/org/gitanimals/core/auth/InternalAuth.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.gitanimals.core.auth
22

33
import jakarta.servlet.http.HttpServletRequest
4+
import org.gitanimals.core.AUTHORIZATION_EXCEPTION
45
import org.slf4j.LoggerFactory
56
import org.springframework.beans.factory.annotation.Value
67
import org.springframework.http.HttpHeaders
@@ -25,6 +26,16 @@ class InternalAuth(
2526
SecretKeySpec(decodedKey, "AES")
2627
}
2728

29+
fun getUserId(throwOnFailure: () -> Unit = throwCannotGetUserId): Long {
30+
val userId = findUserId()
31+
32+
if (userId == null) {
33+
throwOnFailure.invoke()
34+
}
35+
36+
return userId ?: throw AUTHORIZATION_EXCEPTION
37+
}
38+
2839
fun findUserId(): Long? {
2940
val token: String? = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION)
3041
val iv: String? = httpServletRequest.getHeader(INTERNAL_AUTH_IV_KEY)
@@ -83,6 +94,10 @@ class InternalAuth(
8394
companion object {
8495
const val INTERNAL_AUTH_IV_KEY = "Internal-Auth-Iv"
8596
const val INTERNAL_AUTH_SECRET_KEY = "Internal-Auth-Secret"
97+
98+
private val throwCannotGetUserId: () -> Unit = {
99+
throw AUTHORIZATION_EXCEPTION
100+
}
86101
}
87102
}
88103

src/main/kotlin/org/gitanimals/guild/app/AcceptJoinGuildFacade.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
package org.gitanimals.guild.app
22

3+
import org.gitanimals.core.auth.InternalAuth
34
import org.gitanimals.guild.domain.GuildService
45
import org.springframework.stereotype.Service
56

67
@Service
78
class AcceptJoinGuildFacade(
8-
private val identityApi: IdentityApi,
9+
private val internalAuth: InternalAuth,
910
private val guildService: GuildService,
1011
) {
1112

12-
fun acceptJoin(token: String, guildId: Long, acceptUserId: Long) {
13-
val user = identityApi.getUserByToken(token)
13+
fun acceptJoin(guildId: Long, acceptUserId: Long) {
14+
val userId = internalAuth.getUserId()
1415

1516
guildService.acceptJoin(
16-
acceptorId = user.id.toLong(),
17+
acceptorId = userId,
1718
guildId = guildId,
1819
acceptUserId = acceptUserId,
1920
)

src/main/kotlin/org/gitanimals/guild/app/ChangeGuildFacade.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
package org.gitanimals.guild.app
22

3+
import org.gitanimals.core.auth.InternalAuth
34
import org.gitanimals.guild.domain.GuildService
45
import org.gitanimals.guild.domain.request.ChangeGuildRequest
56
import org.springframework.stereotype.Service
67

78
@Service
89
class ChangeGuildFacade(
9-
private val identityApi: IdentityApi,
10+
private val internalAuth: InternalAuth,
1011
private val guildService: GuildService,
1112
) {
1213

13-
fun changeGuild(token: String, guildId: Long, changeGuildRequest: ChangeGuildRequest) {
14+
fun changeGuild(guildId: Long, changeGuildRequest: ChangeGuildRequest) {
1415
changeGuildRequest.requireValidTitle()
1516

16-
val user = identityApi.getUserByToken(token)
17+
val userId = internalAuth.getUserId()
1718

1819
guildService.changeGuild(
19-
changeRequesterId = user.id.toLong(),
20+
changeRequesterId = userId,
2021
guildId = guildId,
2122
request = changeGuildRequest,
2223
)
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package org.gitanimals.guild.app
22

3+
import org.gitanimals.core.auth.InternalAuth
34
import org.gitanimals.guild.domain.GuildService
45
import org.springframework.stereotype.Service
56

67
@Service
78
class DenyJoinGuildFacade(
8-
private val identityApi: IdentityApi,
9+
private val internalAuth: InternalAuth,
910
private val guildService: GuildService,
1011
) {
1112

12-
fun denyJoin(token: String, guildId: Long, denyUserId: Long) {
13-
val user = identityApi.getUserByToken(token)
13+
fun denyJoin(guildId: Long, denyUserId: Long) {
14+
val userId = internalAuth.getUserId()
1415

15-
guildService.denyJoin(denierId = user.id.toLong(), guildId = guildId, denyUserId = denyUserId)
16+
guildService.denyJoin(denierId = userId, guildId = guildId, denyUserId = denyUserId)
1617
}
1718
}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package org.gitanimals.guild.app
22

3+
import org.gitanimals.core.auth.InternalAuth
34
import org.gitanimals.guild.domain.Guild
45
import org.gitanimals.guild.domain.GuildService
56
import org.springframework.stereotype.Service
67

78
@Service
89
class GetJoinedGuildFacade(
9-
private val identityApi: IdentityApi,
10+
private val internalAuth: InternalAuth,
1011
private val guildService: GuildService,
1112
) {
1213

13-
fun getJoinedGuilds(token: String): List<Guild> {
14-
val user = identityApi.getUserByToken(token)
14+
fun getJoinedGuilds(): List<Guild> {
15+
val userId = internalAuth.getUserId()
1516

16-
return guildService.findAllGuildByUserId(user.id.toLong())
17+
return guildService.findAllGuildByUserId(userId)
1718
}
1819
}

src/main/kotlin/org/gitanimals/guild/app/KickGuildFacade.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
package org.gitanimals.guild.app
22

3+
import org.gitanimals.core.auth.InternalAuth
34
import org.gitanimals.guild.domain.GuildService
45
import org.springframework.stereotype.Service
56

67
@Service
78
class KickGuildFacade(
8-
private val identityApi: IdentityApi,
9+
private val internalAuth: InternalAuth,
910
private val guildService: GuildService,
1011
) {
1112

12-
fun kickMember(token: String, guildId: Long, kickUserId: Long) {
13-
val user = identityApi.getUserByToken(token)
13+
fun kickMember(guildId: Long, kickUserId: Long) {
14+
val userId = internalAuth.getUserId()
1415

1516
guildService.kickMember(
16-
kickerId = user.id.toLong(),
17+
kickerId = userId,
1718
guildId = guildId,
1819
kickUserId = kickUserId,
1920
)
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package org.gitanimals.guild.app
22

3+
import org.gitanimals.core.auth.InternalAuth
34
import org.gitanimals.guild.domain.GuildService
45
import org.springframework.stereotype.Component
56

67
@Component
78
class LeaveGuildFacade(
8-
private val identityApi: IdentityApi,
9+
private val internalAuth: InternalAuth,
910
private val guildService: GuildService,
1011
) {
1112

12-
fun leave(token: String, guildId: Long) {
13-
val user = identityApi.getUserByToken(token)
13+
fun leave(guildId: Long) {
14+
val userId = internalAuth.getUserId()
1415

15-
guildService.leave(guildId, user.id.toLong())
16+
guildService.leave(guildId, userId)
1617
}
1718
}

src/main/kotlin/org/gitanimals/guild/controller/GuildController.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class GuildController(
5555
@RequestHeader(HttpHeaders.AUTHORIZATION) token: String,
5656
@PathVariable("guildId") guildId: Long,
5757
@RequestParam("user-id") acceptUserId: Long,
58-
) = acceptJoinGuildFacade.acceptJoin(token, guildId, acceptUserId)
58+
) = acceptJoinGuildFacade.acceptJoin(guildId, acceptUserId)
5959

6060

6161
@ResponseStatus(HttpStatus.OK)
@@ -64,7 +64,7 @@ class GuildController(
6464
@RequestHeader(HttpHeaders.AUTHORIZATION) token: String,
6565
@PathVariable("guildId") guildId: Long,
6666
@RequestParam("user-id") kickUserId: Long,
67-
) = kickGuildFacade.kickMember(token, guildId, kickUserId)
67+
) = kickGuildFacade.kickMember(guildId, kickUserId)
6868

6969

7070
@ResponseStatus(HttpStatus.OK)
@@ -73,7 +73,7 @@ class GuildController(
7373
@RequestHeader(HttpHeaders.AUTHORIZATION) token: String,
7474
@PathVariable("guildId") guildId: Long,
7575
@RequestBody changeGuildRequest: ChangeGuildRequest,
76-
) = changeGuildFacade.changeGuild(token, guildId, changeGuildRequest)
76+
) = changeGuildFacade.changeGuild(guildId, changeGuildRequest)
7777

7878
@ResponseStatus(HttpStatus.OK)
7979
@GetMapping("/guilds/{guildId}")
@@ -92,7 +92,7 @@ class GuildController(
9292
fun getAllJoinedGuild(
9393
@RequestHeader(HttpHeaders.AUTHORIZATION) token: String,
9494
): GuildsResponse {
95-
val guilds = joinedGuildFacade.getJoinedGuilds(token)
95+
val guilds = joinedGuildFacade.getJoinedGuilds()
9696

9797
return GuildsResponse.from(guilds)
9898
}
@@ -144,15 +144,14 @@ class GuildController(
144144
fun leaveGuild(
145145
@RequestHeader(HttpHeaders.AUTHORIZATION) token: String,
146146
@PathVariable("guildId") guildId: Long,
147-
) = leaveGuildFacade.leave(token, guildId)
147+
) = leaveGuildFacade.leave(guildId)
148148

149149
@PostMapping("guilds/{guildId}/deny")
150150
fun deny(
151151
@RequestHeader(HttpHeaders.AUTHORIZATION) token: String,
152152
@PathVariable("guildId") guildId: Long,
153153
@RequestParam("user-id") denyUserId: Long,
154154
) = denyJoinGuildFacade.denyJoin(
155-
token = token,
156155
guildId = guildId,
157156
denyUserId = denyUserId,
158157
)

0 commit comments

Comments
 (0)