일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- 플러터
- 스프링 부트 쇼핑몰 프로젝트 with JPA
- backjoon
- 스프링
- baekjoon
- 네트워크
- 리눅스
- CS
- CS지식
- 자바스크립트
- springboot
- 데이터베이스
- 시큐리티
- Flutter
- JPA
- Spring Security
- DB
- spring
- python
- Oracle
- 파이썬
- 자바
- 스프링부트
- 프로그래머스
- postgresql
- 자료구조
- javascript
- 백준
- 데이터
- Today
- Total
목록시큐리티 (14)
Jin's Dev Story
💡 세션과 쿠키를 이용한 인증 인증 순서 사용자가 로그인을 함 서버에서 계정 정보를 읽어 사용자 확인 사용자에게 고유한 ID 값 부여하여 세션 저장소에 저장 이와 연결되는 Session ID를 발급 서버에는 HTTP 응답 헤더에 발급된 Session ID를 같이 보냄 이후 매 요청마다 HTTP 요청 헤더에 Session ID가 담긴 쿠키를 같이 보냄 서버에서는 쿠키를 받아 세션 저장소에서 대조를 한 후 대응되는 정보를 가져옴 인증이 완료되고 서버는 사용자에 맞는 데이터를 보내줌 장점 사용자의 정보는 세션 저장소에 저장되고, 쿠키는 그 저장소를 통과할 수 있는 출입증 역할을 함 → 쿠키가 담긴 HTTP 요청이 도중에 노출되더라도 쿠키 자체에는 유의미한 값을 갖고 잇지 않아서 쿠키에 사용자 정보를 담아 인증..
💡 Form Login 개념 & 사용법 사용자가 Server에 특정 URL을 요청하였을 때 해당 URL이 인증이 필요할 경우 Server는 Login 페이지를 return 사용자는 username(ID)와 password를 입력하여 로그인 요청을 하면 Post mapping으로 해당 데이터가 서버에 전송 Server는 해당 로그인 정보를 확인합니다. 해당 유저 정보가 존재한다면 Session과 Token을 생성하고 저장
WebSecurityConfigureAdapter → SecurityFilterChain filterChain(HttpSecurity http)로 변경되었음
Spring security Authentication(인증)과 Authorization(권한)을 자바 어플리케이션에 제공하는데 초점을 맞춘 프레임워크 → Filter 기반으로 동작함 💡 인증(Authentication) 해당 사용자가 본인이 맞는지를 확인하는 절차 UsernamePassword를 통한 인증 가능 (Session 관리, Token 관리) SNS 로그인을 통한 인증 위임도 가능 Authentication의 구조 Authentication의 메커니즘 💡 인가, 권한(Authorization) 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차 특정 페이지/리소스에 접근할 수 있는지 권한을 판단 Secured, PrePostAuthorize 어노테이션으로 쉽게 권한 체크 가능 비즈니스..
Authentication에는 인증된 결과 뿐만 아니라 인증을 하기 위한 정보, 인증을 받기 위한 정보가 하나의 객체에 들어가 있음 AuthenticationProvider는 입력된 인증을 보고 허가된 인증을 내주는 방식으로 인증 허가를 판단하며 처리 가능한 Authentication에 대해서 알려주는 support메서드를 지원 Authorities에는 '어디를 갈 수 있는지', '어떤 역할을 할 수 있는지'에 대한 권한 정보로 이를 구현(implement)한 GrantedAuthority에 관한 정보들이 저장되어있음 Authentication에 들어가 있는 Token들은 각각의 Filter들을 통해 발행된 Token들 Credentials은 인증을 받기 위해 필요한 정보들로 대표적인 예시로는 비밀번호 ..
Spring에서 로그인을 한다는 것은 SecurityContext가 authenticated가 true인 Authenticaiton(인증) 객체를 갖고 있는 상태 → 이때 authintication(인증)은 AnonymousAuthenticationToken이 아니어야 함! SecurityContextHolder(인증보관함 보관소)는 인증을 보관하는 보관소이며 Authentication(인증)을 갖고 있는 SecurityContext(인증보관함)를 보관 AuthenticationProvider(인증 제공자)은 Authentication(인증)을 제공하며 이는 여러개가 존재할 수 있음 AuthenticationProvider(인증 제공자)를 관리하는 Interface를 AuthenticationManage..