일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #route53 #igw #연결
- aws #아키텍트 #과정 #vpc #인프라 구축 #vpc #nat #gateway #private subnet
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 서브넷 #안에 #ec2 인스턴스 #ami #생성 #firewall
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #private subnet
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축 #session manager #curl #명령어 #private #instance
- 쓰레드 #쓰레드풀 #프로세스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 비트 #바이트 #이진수
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #internet gateway #연결
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- haproxy #wordpree #php #linux #가상화 #가상머신 #내용정리
- aws #아키텍트 #과정 #s3 #bucket #생성 #이미지업로드
- ipv4 #private #public #instance #curl #연결성 검증 #session manager
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- storage #로컬스토리지 #세션스토리지 #백그라운드 서비스
- samba #가상머신 #daemon
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- mysql #linux #설정 #wordpress #웹사이트 #db 연결 #
- aws #아키텍트 #과정 #vpc #인프라 구축 #private #resource #security #group
- aws #아키텍트 #과정 #vpc #인프라 구축 #private subnet #ec2 #인스턴스 #elastic compute #vm
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 #프라이빗 #서브넷 #igw #route53 #routing table #ec2 #security group #firewall
- aws #클라우드 #퍼블릭 클라우드 #아키텍트 #과정
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #igw #curl #명령어 #http
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 #보안그룹 #생성 #http #ipv4
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #웹페이지 #http #public #instance
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 Spring Master 3강 Spring Security 프레임워크란 본문
Spring Security 프레임워크 코드
// Security
implementation 'org.springframework.boot:spring-boot-starter-security'
Spring Security 프레임워크란
Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공한다.
웹서버 구현에 편의를 제공해준다.
CSRF(Cross-site request forgery)란
공격자가 인증된 브라우저에 저장된 쿠키의 세션정보를 활용하여
웹서버에 사용자가 의도하지 않은 요청을 전달한다.
CSRF 설정이 되어있다면
HTML에 CSRF 토큰 값을 넘겨주어야 수신이 가능하다.
쿠키 기반의 취약점을 이용한 공격이기에
REST 방식의 API에서는 Disable이 가능하다.
Spring Security - Filter Chain
Spring에서 의 모든 호출은
DispatcherServlet을 통과하고
이후
각 요청은 담당 Controller로 분배된다.
각 요청에 대한 공통처리 할 부분은
DispatcherServlet 이전 단계가 필요하며
이것이 Filter이다.
Spring Security는 인증/인가를 처리하기위한
Fiter사용을
FilterChainProxy를 통해 상세로직을 구현한다.
Form Login 기반 인증은
인증이 필요한 URL 요청이 들어왔을 때
인증이 되지 않았다면
로그인 페이지를 반환하는 형태이다
UsernamePasswordAuthenticationFilter는
Spring Security 필터인
AbstractAuthenticationProcessingFilter를 상속한 Filter이다.
기본적 Form Login기반을 사용할 때
username과 password를 확인하여 인증한다.
인증과정으로는
사용자가 username과 password를 제출 하면
UsernamePasswordAuthenticationFilter는
인증된 사용자의 정보가 담기는 인증객체 Authentication의 종류중 하나인
UsernamePasswordAuthenticationToken을 만들어서
AuthenticationManager에게 넘겨 인증을 시도한다.
실패시 SecurityContextHolder를 비우고
성공하면
SecurityContextHolder에 Authentication을 세팅한다.
SecurityContextHolder역할
SecurityContext는 인증이 완료된 사용자의 상세정보 (Authentication)를 저장한다.
SecurityContext는 SecurityContextHolder로 접근할 수 있다.
Authentication
현재 인증된 사용자를 나타내고 SecurityContext에서 가져올 수 있다
Principal
사용자를 식별한다.
Username/Password 방식으로 인증할 때 일반적 UserDetails 인스턴스다.
credentials
주로 비밀번호, 사용자 인증에 사용한 후 비운다.
authorities
사용자에게 부여한 권한을 GrantedAuthority로 추상화 하여 사용한다.
https://hs-backend.tistory.com/147
'Spring' 카테고리의 다른 글
스파르타 부트캠프 Spring Master 3강 Entity @OneToOne 단방향, 양방향 정리 (0) | 2024.05.28 |
---|---|
스파르타 부트캠프 Spring Master 3강 Spring Security 로그인 (0) | 2024.05.27 |
스파르타 부트캠프 Spring Master 3강 필터(Filter) (0) | 2024.05.26 |
스파르타 부트캠프 Spring Master 3강 패스워드 암호화 이해하기 (0) | 2024.05.25 |
스파르타 부트캠프 Spring Master 3강 쿠키와 세션이란 (0) | 2024.05.24 |