diff --git a/놀이터(예제 코드 작성)/spring-security/src/main/kotlin/com/banjjoknim/playground/jwt/domain/user/JwtUserController.kt b/놀이터(예제 코드 작성)/spring-security/src/main/kotlin/com/banjjoknim/playground/jwt/domain/user/JwtUserController.kt index 2eb7592..4590d89 100644 --- a/놀이터(예제 코드 작성)/spring-security/src/main/kotlin/com/banjjoknim/playground/jwt/domain/user/JwtUserController.kt +++ b/놀이터(예제 코드 작성)/spring-security/src/main/kotlin/com/banjjoknim/playground/jwt/domain/user/JwtUserController.kt @@ -1,6 +1,10 @@ package com.banjjoknim.playground.jwt.domain.user +import com.banjjoknim.playground.jwt.config.security.PrincipalDetails +import org.springframework.security.core.Authentication +import org.springframework.security.core.annotation.AuthenticationPrincipal import org.springframework.security.crypto.password.PasswordEncoder +import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RestController @@ -18,4 +22,24 @@ class JwtUserController( jwtUserRepository.save(jwtUser) return "회원가입완료" } + + // user 권한만 접근 가능 + @GetMapping("/api/v1/user") + fun user(@AuthenticationPrincipal authentication: Authentication): String { + val principalDetails = authentication.principal as PrincipalDetails + println("Authentication: ${principalDetails.username}") + return "user" + } + + // manager, admin 권한만 접근 가능 + @GetMapping("/api/v1/manager") + fun manager(): String { + return "manager" + } + + // admin 권한만 접근 가능 + @GetMapping("/api/v1/admin") + fun admin(): String { + return "admin" + } }