Spring

프로젝트에 필요한 내용들(conf)

흰색텀블러 2024. 7. 14. 15:11
이름 정의 역할
AuthenticationConfiguration Spring Security에서 사용자 인증 관련 설정을 담당하는 핵심 클래스 1. 인증 공급자 설정

- 사용자 인증을 처리할 AuthenticationProvider 등록
- UserDetailsService, OAuth2UserService 등의 인증 공급자 설정가능

2. 인증 관리자 설정
- 사용자 인증을 처리할 AuthenticationManager 설정
- 인증 공급자를 통해 사용자 인증 요청 처리

3. 인증 필터 설정
- 사용자 인증을 처리할 인증 필터(UsernamePasswordAuthenticationFilter)를 설정
- 인증 필터를 통한 사용자 인증 요청 처리

4. 인증 예외 처리 설정
- 인증 실패 시 처리할 ExceptionTranslationFilter 설정
- 인증 예외 발생 시 적절한 응답을 반환하도록 처리 
JWT(Json Web Token) 웹 앱에서 사용되는 인증 방식으로, JWTUtil은 JWT를 생성, 검증, 해석하는 등의 기능을 제공하는 유틸리티 클래스 1. JWT 토큰 생성
- 사용자 정보를 JWT 토큰으로 생성

2. JWT 토큰 검증
- 클라이언트에서 전달된 JWT 토큰의 유효성 검증

3. JWT 토큰 해석
- JWT 토큰에서 사용자 정보를 추출
CustomOAuth2UserService Spring Security에서 제공하는 OAuth2 인증 기능을 확장하여 사용자 정보를 관리하는 서비스 클래스 1. 사용자 정보 저장
- OAuth2 인증 과정에서 받은 사용자 정보를 DB에 저장
- 지속적인 사용자 관리 가능

2. 사용자 정보 업데이트
- OAuth2 인증시 받은 사용자 정보가 변경되었을 경우, DB 등의 정보를 업데이트

3. 사용자 정보 조회
- DB에 저장된 사용자 정보를 조회 할 수 있음
- 사용자 관련 기능 구현 가능

4. 사용자 권한 관리
- 사용자 정보와 함께 권한 정보를 관리 할 수 있음
- 사용자 권한 기반 접근 제어 가능
CustomSuccessHandler Spring Security에서 사용자 인증 성공 시 처리를 담당하는 핸들러 클래스 1. 사용자 정보 처리
- 인증 성공 시 사용자 정보를 추출하고 필요한 처리 수행
- 사용자 권한 정보를 세션에 저장하는 등의 작업 수행 

2. 리다이렉션 처리
- 인증 성공 후 이동할 URL을 동적으로 결정할 수 있음
- 사용자의 역할에 따라 다른 페이지로 리다이렉션할 수 있음

3. 추가 응답 처리

- 인증 성공후 응답에 추가적인 정보를 포함할 수 있음
- JWT 토큰을 응답에 포함하는 등의 작업 수행 할 수 있음
AuthenticationManager Spring Security에서 사용자 인증을 처리하는 핵심 인터페이스 1. 인증처리
- 사용자가 제공한 인증 정보(ID,PW)를 바탕으로 사용자 인증을 처리
- 인증 성공시, 인증된 사용자 정보를 반환

2. 인증 공급자 관리
- 사용자 인증을 처리할 AuthenticationProvider 객체 관리
- 사용자 인증 요청이 들어오면, 등록된 AuthenticationProvider를 통해 인증 수행

3. 예외 처리
- 인증 과정에서 발생할 수 있는 예외상황(잘못된ID/PW) 처리
- 예외 발생 시 적절한 응답 반환
configuration Spring 프레임워크에서 앱의 설정 정보를 관리하는 핵심 개념 1. 앱 설정 정의
- DB 연결 정보, 서버 포트, 로깅 설정 등 앱의 다양한 설정 정보 정의
- 앱의 동작 방식 제어 가능

2. Bean 객체 생성 및 관리
- 앱에서 사용되는 객체(빈)을 생성 및 관리
- 빈 객체의 의존성 주입, 스코프 관리등 수행

3. 프로파일 관리
- 개발, 테스트, 운영 등 다양한 환경에 따른 설정 정보 관리
- 환경에 따른 적절한 설정 정보를 선택하여 적용

4. 외부 설정 파일 연동
- 앱 외부에 존재하는 설정 파일(app.yml 등)을 읽어들여 활용가능
SecurityFilterChain 웹 애플리케이션의 보안을 구현하기 위한 일련의 필터 체인을 정의하는 것으로, 필터 체인은 HTTP 요청이 처리되는 과정에서 적용되며, 각 필터는 특정한 보안 기능을 수행. 1. 인증(Authentication) 관리
- 사용자의 로그인 및 인증 과정을 처리.
- 세션 관리, 토큰 기반 인증 등을 수행.

2. 권한 관리(Authorization)
- 인증된 사용자의 권한 및 접근 제어를 관리
- URL 기반 접근 제한, 메서드/리소스 레벨 접근 제한 등을 설정 가능

3. 보안 헤더 설정:
- 응답 헤더에 보안 관련 정보를 추가하여 웹 애플리케이션의 보안을 강화
- CSRF 토큰 생성, XSS 방지 등의 기능을 수행

4. 예외 처리
- 보안 관련 예외 상황 발생 시 적절한 처리를 수행
- 로그인 실패, 권한 없는 접근 등의 예외를 처리가능
BCryptPasswordEncoder Spring Security에서 제공하는 비밀번호 암호화 유틸리티로, BCrypt 해싱 함수를 사용해 비번을 안전하게 암호화하고 저장할 수 있음 강력한 암호화
- BCrypt 해싱 함수는 SHA-256 알고리즘보다 더 강력한 암호화 알고리즘을 사용 하여 비밀번호가 안전하게 보호

적응형 해싱
- BCrypt 해싱 함수는 해싱 비용을 조절
- 하드웨어 성능 향상에 따라 보안 수준을 높임

솔트 적용
- BCrypt 해싱 함수는 각 비밀번호에 대해 고유한 솔트 값을 생성하여 적용
- 동일한 비밀번호라도 서로 다른 해시값을 생성

속도 조절
- BCrypt 해싱 함수는 해싱 속도를 조절
- 무차별 대입 공격에 대한 보안성 증가
csrf(Cross-Site Request Forgery) 악의적인 사용자가 피해자의 웹 브라우저를 이용해 피해자의 의도와 무관하게 서버에 요청을 보내는 공격 기법 예외처리 경우

1. API 서버
- CSRF 공격이 발생할 가능성이 낮은 API 서버의 경우, CSRF 보안 기능을 비활성화할 수 있습니다.

2. 특정 엔드포인트
- 일부 엔드포인트에서만 CSRF 보안이 필요하다면, 해당 엔드포인트를 제외하고 CSRF 보안 기능을 비활성화할 수 있습니다.

3. 테스트 환경
- 테스트 환경에서 CSRF 보안 기능을 비활성화하여 테스트 수행을 간단하게 할 수 있습니다.

 

'Spring' 카테고리의 다른 글

프로젝트에 필요한 내용들(jwt)  (0) 2024.07.14