반응형 전체 글91 [springboot] @LoginUser 어노테이션 SessionUser user = (SessionUser) httpSession.getAttribute("user");@LoginUser 어노테이션은 매번 세션의 저장된 정보를 불러 들이는 위 코드의 중복을 줄여준다.사용법은 아래와 같다. 1) @LoginUser 어노테이션 생성package com.loosie.book.springboot.config.auth;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.PARAMETER)@Retenti.. 2024. 10. 10. [springboot] Spring Security 권한 설정 외 @PreAuthorize로 추가 권한 검사 Spring Security는 Security Config 파일을 통해 접근 제한을 설정할 수 있다.하지만 대부분의 REST API 문서를 보면 userId 와 같이 기본키를 URL에 포함한다.따라서 전달받은 id와 세션에 저장된 id를 비교해 권한 검사하는 것은 선택적이지만 보안을 위해 권장한다.전달 받은 id와 세션의 정보를 비교 하는 방법으로 가장 가독성 있는 @PreAuthorize 어노테이션을 사용하는 방법이 있다.컨트롤러에 @PreAuthorize 어노테이션 사용 예시@RestControllerpublic class UserController { @PreAuthorize("#userId == authentication.principal.id") @PutMapping("/users/.. 2024. 10. 10. [springboot] Spring Security의 /login 요청 시 처리 과정(세션 저장) Spring Security에는 /login과 /logout 요청을 처리하는 메서드(세션저장/세션삭제)가 내부적으로 구현되어 있다. 따라서 개발자는 따로 구현을 하지 않아도 된다. 하지만 어떤식으로 /login POST 요청이 처리되어 세션에 저장되는지 궁금해서 정리해 본다. ① 클라이언트는 아이디와 비밀번호 정보를 담아 서버에게 POST /login 요청 ② 스프링시큐리티의 UsernamePasswordAuthenticationFilter 가 중간에서 아이디와 비밀번호를 추출 ③ 추출한 아이디와 비밀번호를 AuthenticationManager 에게 주면서 인증 요청 ④ AuthenticationManager는 AuthenticationProvider( DaoAuthenticationProvider.. 2024. 10. 9. [네트워크] TCP 연결 3-Way handshake, UDP TCP(Transmission Control Protocol) TCP 통신을 하려면 먼저 네트워크 연결 설정이 필요합니다. TCP 연결 수립 과정은 3-Way 핸드셰이크 과정을 TCP 연결을 생성할 때는 3-Way 핸드셰이크를 이용해요.SYN: 클라이언트가 서버에게 SYN(synchronize) 플래그가 설정된 메시지를 보냅니다. 이때 SYN은 클라이언트의 임의 시퀀스 번호 A를 포함합니다.SYN-ACK: 서버는 클라이언트의 SYN에 응답하여 SYN-ACK 메시지를 보냅니다. 서버는 자신만의 새로운 시퀀스 번호 B를 포함한 SYN을 전송하고, 클라이언트의 시퀀스 번호 A에 1을 더한 ACK(acknowledgment)를 함께 보냅니다(A+1).ACK: 클라이언트는 서버로부터 받은 SYN에 대해 ACK 메.. 2024. 10. 8. [OS] 프로세스 스케줄링 선점형- 최소 남은 시간 우선(SRTF)- 라운드 로빈(RR)- 우선순위(Priority) 비선점형- 선입선출(FIFO 또는 FCFS)- 최단시간(SJF)- 우선순위(Priority)선입선출(FCFS) 스케줄링프로세스 A: 도착 시간 0ms, 실행 시간 3ms프로세스 B: 도착 시간 2ms, 실행 시간 6ms프로세스 C: 도착 시간 4ms, 실행 시간 4ms프로세스 A는 즉시 실행을 시작하여 0ms부터 3ms까지 실행됩니다.프로세스 B는 2ms에 도착했지만, A가 실행을 마친 직후인 3ms에 실행을 시작하여 3ms부터 9ms까지 실행됩니다.프로세스 C는 4ms에 도착했지만, B가 실행을 마친 직후인 9ms에 실행을 시작하여 9ms부터 13ms까지 실행됩니다.이 예에서 볼 수 있듯이, FCFS 스케줄링은 .. 2024. 8. 29. [OS] 시스템 콜(System Call) 시스템 콜(System Call)은 운영체제의 커널이 제공하는 서비스에 응용 프로그램이 접근할 수 있도록 하는 인터페이스입니다. 응용 프로그램이 파일 시스템 접근, 네트워크 통신, 메모리 관리 등의 시스템 리소스를 사용하고자 할 때, 직접적으로 하드웨어를 조작하는 대신 시스템 콜을 통해 운영체제에 요청을 하게 됩니다. 이를 통해 운영체제는 안전하고 효율적으로 시스템 리소스를 관리할 수 있습니다.시스템 콜의 주요 기능프로세스 관리: 프로세스의 생성, 실행, 종료 등을 관리합니다. 예를 들어, fork(), exec(), exit() 등의 시스템 콜이 이에 해당합니다.파일 조작: 파일 생성, 읽기, 쓰기, 삭제 등 파일 시스템과 관련된 작업을 수행합니다. open(), read(), write(), clos.. 2024. 8. 24. 이전 1 2 3 4 5 6 7 ··· 16 다음 반응형