Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Spring Security

SecurityContext, SecurityContextHolder, 스레드 처리 방식

**SecurityContext**와 **SecurityContextHolder**는 Spring Security의 인증 및 권한 관리에서 중요한 두 가지 개념입니다. 이들은 Spring Security에서 사용자 인증 정보를 유지하고 관리하는 역할을 하며, 애플리케이션의 요청 처리 과정에서 인증된 사용자의 정보를 필요로 하는 곳에 제공합니다.  1. SecurityContext **SecurityContext**는 Spring Security에서 현재 인증된 사용자 정보를 저장하고 관리하는 인터페이스입니다. 인증된 사용자의 정보를 저장하여 애플리케이션의 어느 부분에서든 인증 상태를 참조할 수 있게 합니다. 주요 역할  • 현재 인증된 사용자 정보 유지: 사용자가 인증을 완료하면 SecurityConte..

2024. 10. 29. 10:32
Spring Security

UserDetailsService, PasswordEncoder, AuthenticationProvider

1. UserDetailsService **UserDetailsService**는 Spring Security에서 사용자의 인증을 위한 사용자 정보를 가져오는 데 사용되는 인터페이스입니다. 이 인터페이스는 사용자의 사용자명(username)을 통해 사용자 정보를 조회하고, 그 정보를 바탕으로 인증을 처리합니다. 주요 메서드  • loadUserByUsername(String username): 이 메서드는 사용자명을 입력받아 해당 사용자의 인증 정보를 담고 있는 UserDetails 객체를 반환합니다. UserDetailsService 구현 예시 보통 데이터베이스와 연결하여 사용자의 인증 정보를 가져오는데, 일반적인 구현 예시를 살펴보겠습니다.import org.springframework.securit..

2024. 10. 29. 09:13
Spring Security

JSON Web Token

**JSON Web Token (JWT)**은 주로 클라이언트와 서버 간에 사용자 인증과 정보 전달을 위해 사용하는 JSON 기반의 토큰입니다. JWT는 특히 웹 애플리케이션에서 많이 사용되며, 사용자 로그인 후 발급된 토큰을 통해 사용자가 이후 요청에서도 지속적으로 인증을 유지할 수 있도록 해줍니다. JWT의 구성 요소 JWT는 크게 헤더(Header), 페이로드(Payload), **서명(Signature)**의 세 부분으로 나누어집니다.  1. 헤더(Header): • 헤더는 토큰의 유형과 서명 알고리즘을 지정하는 정보를 포함합니다. 일반적으로 alg는 서명 알고리즘을 나타내고, typ는 JWT임을 나타냅니다. • 예시:{ "alg": "HS256", "typ": "JWT"} 2. 페이로드(Pa..

2024. 10. 28. 17:22
Spring Security

SHA-256

SHA-256은 Secure Hash Algorithm 256-bit의 줄임말로, 데이터를 암호화하는 해시 함수입니다. 주로 데이터의 무결성을 검증하거나 암호학적 목적으로 사용됩니다. SHA-256은 SHA-2(Secure Hash Algorithm 2) 패밀리의 일종으로, 2001년에 미국 국립표준기술연구소(NIST)에 의해 공개된 후 안전성과 성능 면에서 널리 인정받아 현재까지도 사용되고 있습니다. SHA-256의 주요 특징  1. 고정 길이 출력: 입력 데이터의 길이에 관계없이 항상 256비트(32바이트) 고정된 길이의 해시 값을 생성합니다. 2. 단방향 특성: 원본 데이터를 알 수 없도록 해시 값을 통해 역산할 수 없기 때문에 보안이 높은 단방향 특성을 가지고 있습니다. 3. 충돌 저항성: 서로 ..

2024. 10. 28. 17:13
Spring Security

자체 서명된 인증서 생성하기

CA 기관을 통하지 않고 직접 HTTPS 인증서를 만들어서 사용하려면 **자체 서명된 인증서(Self-Signed Certificate)**를 생성하여 HTTPS 설정에 적용할 수 있습니다. 자체 서명된 인증서는 테스트나 개발 환경에서 주로 사용되며, 운영 환경에서는 보안상의 이유로 권장되지 않습니다. 아래는 자체 서명된 인증서를 생성하고 Spring Boot에서 HTTPS로 설정하는 방법입니다. 1. 자체 서명된 인증서 생성하기 자체 서명된 인증서를 생성하기 위해 Java Keytool을 사용할 수 있습니다. 이 명령어는 keystore.p12라는 이름의 키스토어 파일을 생성하며, 인증서와 개인 키가 포함됩니다.keytool -genkeypair -alias mycert -keyalg RSA -keys..

2024. 10. 28. 13:58
Spring Security

Credential, Principal

보안에서 **Credential(자격 증명)**과 **Principal(주체)**는 시스템이 사용자 또는 시스템의 신원을 확인하고 접근을 관리하는 데 중요한 역할을 하는 개념입니다. 두 개념 모두 인증(Authentication)과 권한 부여(Authorization)를 위한 핵심 요소입니다. Spring Security에서도 이 개념을 바탕으로 사용자 관리 및 보안 기능을 제공합니다. Credential(자격 증명) Credential은 사용자가 시스템에 접근하기 위해 필요한 정보를 의미합니다. 자격 증명은 사용자가 시스템에 로그인하거나 특정 리소스에 접근할 때, 그 사용자가 누구인지 확인하는 정보로 활용됩니다. 시스템은 이 정보를 바탕으로 사용자가 허가된 사용자임을 확인하고, 인증이 성공하면 사용자에..

2024. 10. 28. 13:44
Spring Security

Spring Security

Spring Security는 웹 애플리케이션과 REST API의 보안을 강화하는 Java 기반의 프레임워크로, 주로 **인증(Authentication)**과 권한 부여(Authorization) 기능을 제공합니다. Spring Framework와 쉽게 통합되며, 접근 제어, 보안 정책 관리, 암호화 등의 다양한 보안 기능을 구축할 수 있습니다. Spring Boot와 함께 사용할 때는 많은 설정을 자동으로 구성해 주어, 더 빠르고 쉽게 보안 기능을 추가할 수 있습니다. Spring Boot 3에서는 WebSecurityConfigurerAdapter가 더 이상 사용되지 않습니다. 대신, **SecurityFilterChain**을 사용하여 Spring Security 설정을 구성합니다. WebSecu..

2024. 10. 28. 12:48
  • «
  • 1
  • 2
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 250
    • Java 18
    • Spring Framework 33
      • Toby's Spring 3.1 6
      • Spring IoC 6
      • TDD 6
      • Reflection 6
      • AOP 6
    • Spring Boot 11
    • Spring Security 22
    • Database 17
      • Mysql 2
      • JDBC 2
      • JPA 13
    • Build and Development Tools 3
      • Maven 1
      • Gradle 1
      • Lombok 1
    • Network 12
    • Apache Tomcat 11
    • Microservices Architecture 33
    • Linux 9
    • React 10
    • Docker 22
    • OAuth 10
    • DevOps 2
    • Git 2
    • HTML 1
    • CSS 1
    • JavaScript 1
    • Problem and Solution Guide 8
      • Java 1
      • Spring Framework 4
      • Reflection 1
      • Dynamic Proxy 1
      • JPA 1
    • Note-Taking 23

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.