전체 글

이 장에서는 Spring Security의 인증 프로세스와 그 구성 요소들에 대해 다룹니다. 인증은 애플리케이션에서 중요한 보안 요소로, 요청을 수행하는 엔터티가 누구인지를 식별하고, 그에 따라 적절한 권한을 부여하는 과정을 포함합니다. 다음은 이 장에서 다루는 주요 내용입니다.1. 사용자 정의 AuthenticationProvider 구현AuthenticationProvider는 인증 로직을 담당하는 구성 요소로, 사용자가 요청을 인증할지 여부를 판단하는 책임을 가집니다. Spring Security에서 인증 프로세스를 사용자 정의하려면 AuthenticationProvider를 구현해야 하며, 이 클래스에서 인증 조건과 지침을 정의합니다. 또한, 인증이 성공하거나 실패했을 때 어떤 작업을 수행할지도 ..
이번 장에서는 다음과 같은 내용을 다룹니다:필터 체인 작업하기사용자 정의 필터 정의하기Spring Security 필터 인터페이스 구현하기HTTP 필터와 필터 체인Spring Security에서 HTTP 필터는 HTTP 요청에 보안 관련 작업을 적용하는 중요한 역할을 합니다. 필터는 각각의 보안 기능을 담당하며, 요청이 서버로 들어올 때마다 순차적으로 필터 체인 내에서 처리됩니다. 각 필터는 특정한 작업을 수행한 후, 그 결과에 따라 다음 필터로 요청을 넘기거나, 필요에 따라 요청 처리를 중단하고 응답을 바로 반환할 수도 있습니다.예를 들어:인증 필터는 사용자의 신원을 확인하고 인증을 처리합니다.권한 부여 필터는 사용자가 요청한 작업을 수행할 권한이 있는지 확인합니다.CSRF 보호 필터는 CSRF 공격을..
이 장에서는 다음 내용을 다룹니다.PasswordEncoder 구현 및 작업Spring Security Crypto 모듈이 제공하는 도구 사용3장에서는 Spring Security를 활용한 애플리케이션에서 사용자 관리 방법을 논의했지만, 이번 장에서는 비밀번호와 secret의 관리 방법에 대해 다룹니다. Spring Security는 비밀번호와 중요한 정보를 보호하기 위해 PasswordEncoder 인터페이스와 함께 다양한 도구를 제공합니다. 이러한 도구들은 비밀번호뿐만 아니라, API 키, 토큰, 암호화 키 등 민감한 데이터를 안전하게 관리할 수 있도록 돕습니다.여기서 secret은 사용자의 인증에 중요한 정보를 의미하며, 비밀번호 외에도 애플리케이션에서 보호해야 할 중요한 데이터들을 포함합니다. 이..
이 장에서는 Spring Security에서 중요한 역할을 하는 UserDetailsService와 관련된 여러 가지 개념과 구성 요소를 깊이 있게 다룹니다. 이 내용을 이해하는 것은 Spring Security를 잘 활용하기 위한 핵심적인 부분이므로, 각 개념을 체계적으로 살펴보겠습니다.핵심 개념 및 인터페이스UserDetails 인터페이스:UserDetails는 Spring Security에서 사용자를 설명하는 계약입니다. 사용자의 정보(예: 사용자 이름, 비밀번호, 권한 등)를 정의하고, 이를 인증 및 권한 부여 과정에서 사용합니다.사용자 객체는 UserDetails를 구현하여 애플리케이션에 적합한 사용자 정보를 제공합니다.GrantedAuthority 인터페이스:GrantedAuthority는 사..
이 장에서는 다음 주제를 다룹니다:Spring Security를 사용한 첫 번째 프로젝트 생성인증과 권한 부여를 위한 기본 구성 요소 활용 및 간단한 기능 설계기본 개념 이해 및 이를 특정 프로젝트에 적용하는 방법 탐색기본 인터페이스 구현 및 그 상호 연관성 파악주요 책임의 사용자 정의 구현 작성Spring Boot의 기본 Spring Security 설정 재정의Spring Boot와 자동 구성의 장점Spring Boot는 Spring Framework 기반 애플리케이션 개발의 진화된 형태로, 사전 구성된 기본 설정을 제공하여 필요 시 일부만 재정의하도록 지원합니다. 이러한 방식은 “컨벤션 오버 구성”(Convention over Configuration) 접근법으로, 복잡한 초기 설정 없이 개발 효율성..
https://sundaland.tistory.com/481  ▶ Composing Java-based Configurations Spring의 Java 기반 구성 기능을 사용하면 어노테이션을 작성할 수 있어 구성의 복잡성을 줄일 수 있다. ▷ Using the @Import Annotation 엘리먼트가 Spring XML 파일 내에서 구성의 모듈화를 돕기 위해 사용되는 것처럼, @Import 어노테이션을 사용하면 다음 예제와 같이 다른 구성 클래스에서 @Bean 정의를 로드할 수 있다. @Configurationpublic class ConfigA { @Bean public A a() { return new A(); }}@Configuration@Import(ConfigA.class)public ..
https://sundaland.tistory.com/480  ▶ Using the @Configuration annotation @Configuration은 객체가 빈 정의의 소스임을 나타내는 클래스 레벨 어노테이션이다. @Configuration 클래스는 @Bean 어노테이션이 달린 메서드를 통해 빈을 선언한다. @Configuration 클래스에서 @Bean 메서드에 대한 호출은 빈 간 종속성을 정의하는 데에도 사용할 수 있다. ▷ Injecting Inter-bean Dependencies 빈이 서로 종속성을 가질 때, 그 종속성을 표현하는 것은 다음 예제에서 보듯이 한 빈 메서드가 다른 빈 메서드를 호출하는 것만큼 간단하다. @Configurationpublic class AppConfig { ..
https://sundaland.tistory.com/479  ▶ Using the @Bean Annotation@Bean은 메서드 레벨 어노테이션이며 XML 엘리먼트와 직접적으로 대응된다. 이 어노테이션은 에서 제공하는 다음과 같은 일부 속성을 지원한다.init-methoddestroy-methodautowiringname @Bean 애노테이션은 @Configuration 어노테이션이 붙은 클래스나 @Component 어노테이션이 붙은 클래스에서 사용할 수 있다.  ▷ Declaring a Bean 빈을 선언하려면 @Bean 어노테이션으로 메서드에 어노테이션을 달 수 있다. 이 메서드를 사용하여 메서드의 리턴 값으로 지정된 타입의 ApplicationContext 내에 빈 정의를 등록한다. 기본적으로..
GLaDiDos
GLaDiDos의 티스토리