Skip to content

Commit 019b074

Browse files
committed
feat: 생성, 수정, 삭제 어드민 권한 추가 (DASOMBE-14)
1 parent 9078b43 commit 019b074

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/main/java/dmu/dasom/api/domain/executive/controller/ExecutiveController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import jakarta.validation.constraints.Min;
99
import lombok.RequiredArgsConstructor;
1010
import org.springframework.http.ResponseEntity;
11+
import org.springframework.security.access.prepost.PreAuthorize;
1112
import org.springframework.web.bind.annotation.*;
1213

1314
import java.util.List;
@@ -33,12 +34,14 @@ public ResponseEntity<List<ExecutiveListResponseDto>> getAllExecutives() {
3334
}
3435

3536
@Operation(summary = "임원진 생성")
37+
@PreAuthorize("hasRole('ADMIN')")
3638
@PostMapping
3739
public ResponseEntity<ExecutiveCreationResponseDto> createExecutive(@Valid @RequestBody ExecutiveRequestDto requestDto) {
3840
return ResponseEntity.status(201).body(executiveService.createExecutive(requestDto));
3941
}
4042

4143
@Operation(summary = "임원진 삭제")
44+
@PreAuthorize("hasRole('ADMIN')")
4245
@DeleteMapping("/{id}")
4346
// Void 사용 이유?
4447
// DELETE 요청 같이 성공/실패만 확인하면 되는 경우 사용
@@ -48,6 +51,7 @@ public ResponseEntity<Void> deleteExecutive(@PathVariable @Min(1) Long id) {
4851
}
4952

5053
@Operation(summary = "임원진 수정")
54+
@PreAuthorize("hasRole('ADMIN')")
5155
@PutMapping("/{id}")
5256
public ResponseEntity<ExecutiveResponseDto> updateExecutive(@PathVariable @Min(1) Long id,
5357
@Valid @RequestBody ExecutiveUpdateRequestDto requestDto) {

src/main/java/dmu/dasom/api/global/auth/config/SecurityConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.context.annotation.Configuration;
1313
import org.springframework.security.authentication.AuthenticationManager;
1414
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
15+
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
1516
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
1617
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
1718
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
@@ -26,6 +27,7 @@
2627

2728
@Configuration
2829
@EnableWebSecurity
30+
@EnableMethodSecurity(prePostEnabled = true) // 메소드 보안 활성화 (@PreAuthorize 사용)
2931
@RequiredArgsConstructor
3032
public class SecurityConfig {
3133

0 commit comments

Comments
 (0)