Spring Security Reactive 란?
- WebFlux Security를 이용한 표준 @SpringBootApplication 구성을 사용하지 않고 대신 Netty 기반 웹 서버를 구성합니다. Netty는 반응형 애플리케이션의 좋은 기반이 되는 비동기식 NIO 기반 프레임워크입니다.
@EnableWebFlux 어노테이션은 애플리케이션에 대한 표준 Spring Web Reactive 구성을 활성화합니다
관련 PR 링크
feat : 기능 (SecurityConfig+RedisConfig / oauth2+jwt 로그인 및 로그아웃/access재발급) · biday5/final_biday@457f28a
- msa 변경 및 Spring Security Reactive 변경
feat : msa-first commit · biday5/biday-msa@6b499ca
fix: cookie https 설정 · biday5/biday-msa@11d993a
Netty 기반 웹 서버 작업하게 된 이유
- 설계 시 API Gateway 를 통해 security 및 JWT 검증 처리 함으로써 각 서비스에서 별도로 인증을 수행이 필요 없고 서비스는 인증된 요청만 확인하면 되어 보안과 성능을 동시에 강화 시킴
- auction-service Netty 서버 사용
- 실시간 경매 시스템의 높은 동시성 처리를 위해 고성능 비동기 처리가 필수적인 시스템으로, Netty를 사용하여 대규모 동시 연결을 효율적으로 관리하고 비동기 네트워크 처리 Netty 서비스도 같이 호환을 위해서 security 도 Netty서버로 구현
- user-service 분리
- Netty 서버를 사용 하여 WebClient 통신 사용하여 로그인시 User 정보 검증 및 logint-history을 WebClient 통신을 이용하여 검증
OAuth 2.0 및 JWT 토큰 처리 백엔드에 초점이 맞춰 작업하게 된 이유
- 보안, 관리, 확장성 측면에서 매우 유리하며 이를 통해 클라이언트는 인증 및 토큰 처리에 대한 부담을 덜 수 있고, 백 엔드 에서는 인증 흐름을 제어하며 보다 안전하고 효율적으로 시스템을 운영
- 처리 순서 : (로그인 페이지 요청 → 코드 발급 → Access 토큰 → 유저 정보 획득 → JWT 발급)
- 참고 문헌