[스프링부트 회원 프로젝트] 01_개발환경 소개(springboot, mysql, jpa, login)

SecurityFilterChain

  1. 개발환경
    1. Open JDK 11(Amazon Corretto 11)
    2. MySQL Server 8.0
    3. Spring Boot 2.6.12
  2. Library or Framework
    1. Spring Data JPA
    2. Thymeleaf
    3. lombok
    4. gradle
## 파일 구조

src/main/java/com/sofly/core ├── domain │ └── user │ ├── entity │ │ └── User.java ← 기존 │ ├── repository │ │ └── UserRepository.java │ └── service │ └── UserService.java │ └── global ├── security │ ├── SecurityConfig.java ← Security 전체 설정 │ ├── jwt │ │ ├── JwtTokenProvider.java ← 토큰 생성 · 검증 │ │ ├── JwtAuthenticationFilter.java ← 요청마다 토큰 검사 │ │ └── JwtProperties.java ← secretKey, expiration 바인딩 │ └── oauth2 │ ├── CustomOAuth2UserService.java ← 제공자별 유저 정보 파싱 │ ├── OAuth2AuthenticationSuccessHandler.java │ ├── OAuth2AuthenticationFailureHandler.java │ ├── userinfo │ │ ├── OAuth2UserInfo.java ← 인터페이스 │ │ ├── GoogleUserInfo.java │ │ ├── KakaoUserInfo.java │ │ └── NaverUserInfo.java │ └── RefreshToken.java ← Redis 엔티티 │ └── auth ├── controller │ └── AuthController.java ← /api/auth/refresh, /api/auth/logout ├── service │ └── AuthService.java └── dto ├── TokenResponse.java └── RefreshTokenRequest.java


---

구현 순서는 이렇게 가는 게 좋아요.

JwtProperties → JwtTokenProvider → RefreshToken (Redis) → OAuth2UserInfo 인터페이스 + 제공자별 구현체 3개 → CustomOAuth2UserService → OAuth2AuthenticationSuccessHandler → OAuth2AuthenticationFailureHandler → JwtAuthenticationFilter → SecurityConfig → UserRepository / UserService → AuthController (refresh, logout)