Java25 [Spring Security] 스프링 시큐리티의 구조와 인증 과정 스프링 시큐리티는 크게 네 가지 요소로 구성되어 있습니다. 인증 필터, 인증 관리자, 인증 공급자, 보안 컨텍스트가 그것들인데요. 스프링 시큐리티의 인증 프로세스를 각 구성요소의 역할과 함께 정리해보겠습니다.인증 과정HTTP 요청이 들어오면 AuthenticationFilter가 가로챈다.AuthenticationFilter는 AuthenticationManager에게 인증을 위임한다.AuthenticationManager는 AuthenticationProvider를 이용하여 인증을 처리한다.AuthenticationProvider는 사용자 관리 책임을 구현하는 UserDetailsService와 암호 관리를 구현하는 PasswordEncoder를 인증 논리에 이용한다.인증된 엔티티에 대한 세부 정보를 .. 2024. 11. 18. [Java] Record로 DTO 만들기 팀프로젝트의 시작단계에서 DTO에 관한 컨벤션을 정하는데 팀원이 "DTO는 Record로 만드는 게 어때?"라며 운을 띄우더라구요. 그때만해도 Record가 무엇인지 몰랐으나 Record의 장점에 대해 나열하는 근거들이 매력적으로 느껴져 Record에 대해 알아보게 되었습니다. 3.x.x 대의 SpringBoot가 필수적으로 Java17 이상을 요구함에 따라 Java11을 뒤로하고 Java17을 선택하여 사용하게 되었죠. Record는 Java14부터 처음 포함되어 새롭게 추가된 내용인데, 무엇에 쓰는 물건인고하니 기존의 코드를 간결하게 만들어줄만한 부분이 있는 유용한 점이 있다고 여겨지더라구요. 함께 Record에 대해 정리해봅시다.Record란?먼저 Java 공식문서에서의 서술은 다음과 같습니다... 2024. 5. 30. [Java] 추상 클래스와 인터페이스 비교 1. 추상 클래스(abstract class) 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것 추상 클래스는 추상 메서드를 포함하고 있다는 것을 제외하고는 일반클래스와 유사하다 추상 클래스에도 생성자가 있으며 멤버변수와 메서드도 가질 수 있다 new 연산자 사용 불가 1. 1. 추상 클래스의 사용 방법 클래스 선언부에 abstract 키워드 입력 abstract 키워드를 포함한 추상 메서드를 정의한다. 추상 클래스는 상속을 통해서 자손 클래스에 의해서 완성 2. 인터페이스(interface) 추상클래스가 미완성 설계도 .. 2023. 8. 2. [Java] 생성자 라는 이름이 불러온 오해 생성자란 생성자는 '인스턴스(객체) 초기화 메서드'이다. 그래서 클래스 내의 메서드의 구조와 유사하다. 다만, 아래의 차이가 있다. 생성자는 반환값이 없다. 그러면서도 메서드 선언부에 void를 사용하지 않는다. 주로 인스턴스 변수 초기화 작업에 사용된다. 생성자에 대한 오해 생성자는 보통 '인스턴스를 생성할 때 사용하는 것'이라고도 이르러지기에 '생성자로 인스턴스를 생성할 수 있구나'라고 생각해왔다. 하지만 이는 완벽히 맞는 말은 아니었다!! (두둥탁🥁) 서두에서 생성자는 반환값을 가지지 않는다고 했다. Person person = new Person(); 위와 같이 인스턴스를 생성하곤 하는데 반환값이 있어야 변수에 그것을 할당할 것이 아닌가?? 이게 어찌된 일..? 알고보니 생성자 앞에 달려있는 세 .. 2023. 7. 19. 이전 1 2 3 4 ··· 7 다음