회원가입, 로그인
- Spring Security
- Authentication(인증) : 사용자의 신원을 확인
- Authorization(인가) : 애플리케이션의 특정 부분에 대한 접근을 제한. 사용자의 역할에 따라 권한 부여 가능
- 세션관리 : 웹 애플리케이션 보안을 유지하기위한 필수적 요소
- 세션정책 'STATELESS' 사용 : 스프링시큐리티가 세션 생성 X, 기존의 것 사용 X -> JWT 토큰 방식을 사용하기 위해
[시큐리티 세션정책]
// 스프링시큐리티가 항상 세션을 생성
SessionCreationPolicy.ALWAYS
// 스프링시큐리티가 필요시 생성(기본)
SessionCreationPolicy.IF_REQUIRED
// 스프링시큐리티가 생성하지않지만, 기존에 존재하면 사용
SessionCreationPolicy.NEVER
- JWT(Json Web Token)
- 장점
- 서버에 인증 정보에 대한 세션과 같은 저장소가 필요 없어서 부하가 훨씬 덜 걸림
- 서버가 상태성을 갖지 않고도 회원을 인증/인가하고 필요한 서비스 제공 가능
- 단점
- 처리 자체가 비용이 있으므로 인증 요청이 많아질수록 네트워크 부하가 심해질 수 있음
- 토큰을 탈취당하면 대처하기 어렵다는 큰 보안적 이슈가 있음
- 토큰 탈취의 가능성을 고려하여 토큰의 만료 시간을 짧게 설정해서 피해를 최소화 할 수 있지만, 이 때마다 사용자가 다시 로그인을 해야함
- Refresh Token
- JWT 토큰 탈취의 단점을 보안하기 위해 Refresh Token 사용
- 장점
- Email 인증
- BCryptPasswordEncoder
- 사용자의 비밀번호를 DB에 저장할 때, 암호화해서 저장하기 위해 사용
- Header /
Cookie- bearer 키워드를 사용하지 않음 -> bearer관련 처리하는 로직을 하나 줄이기위해.....
CRUD
- Shop
- Pet
- Review
- Like
- S3 - image
채팅
- WebSocket
- Stomp
서버 및 배포
- CodeDeploy
- S3
- Github actions
- AWS EC2 - Ubuntu
DataBase
- RDS - MySQL
- Redis(NoSQL)
ETC
- P6spy
- Swagger
'기록하기' 카테고리의 다른 글
샵 관련 문제 (1) | 2024.01.02 |
---|---|
실시간 채팅 구현하기 (1) (0) | 2023.12.25 |
Dependencies [1차 정리] (0) | 2023.12.18 |
AWS EC2 Ubuntu Docker 실행하기 (0) | 2023.12.10 |
Day + 54 (0) | 2023.12.08 |