Index
1. Bean 수동 등록 |
2. 인증과 인가 |
3. 쿠키와 세션 |
4. JWT (Json Web Token) |
1. Bean 수동 등록 |
[1] @Autowired : 자동 주입
[2] @Primary 와 @Qualifier(" ")
@Primary : 넓은 범위의 설정 |
@Qualifier(" ") : 좁은 범위의 설정. 좀 더 효율적으로 사용 가능 |
2. 인증과 인가 |
[1] 인증 (Authentication) : 해당 유저가 실제 그 유저가 맞는지 확인하는 절차
[2] 인가 (Authorization) : 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인, 즉 접근 권한이 있는지 확인
서버 - 클라이언트 구조에서, HTTP 라는 프로토콜을 이용하여 통신하는데, 그 통신은 비연결성(Connectionless) 무상태(Stateless)로 이루어진다. 비연결성은 서버와 클라이언트가 연결되어 있지 않다는 것이고, 무상태는 서버가 클라이언트의 상태를 저장하지 않는다는 것이다.
3. 쿠키와 세션 |
4. JWT (Json Web Token) |
로드 밸런서 (Load Balancer)
Secret Key 통한 암호화 / 위조 검증 (복호화 시)
[1] JWT의 장단점
JWT의 장점 |
- 동시 접속자가 많을 때 서버 부하를 낮춤 - Client, Server가 다른 도메인을 사용할 때 |
JWT의 단점 |
- 구현의 복잡도가 증가 - JWT에 담는 내용이 커질 수록 네트워크 비용 증가 (클라이언트 ⇒ 서버) - 이미 생성된 JWT를 일부만 만료시킬 방법이 없음 - Secret key 유출 시 JWT 조작 가능 |
JWT에는 민감한 정보(비밀번호 등)은 넣으면 안된다.
JWT Encoding / Decoding Link
Header / PayLoad / Signature
[2] JwtUtil : JWT 관련 메서드를 가져다 쓰는 클래스
public class JwtUtil {
// JWT 생성
// 생성된 JWT를 Cookie에 저장
// Cookie에 들어있던 JWT 토큰을 Substring
// JWT 검증
// JWT에서 사용자 정보
}