[Java - Spring Security6] Authentication(인증)과 관련된 Provider와 manager
·
Spring/Security6
이전의 내용에서는 1번 Config파일에서 인증을 거쳐야 하는 경로를 지정하거나 6번에서 비밀번호를 암호화하여 비밀번호 일치여부를 확인하는 과정에 대해서 배웠다! 오늘 공부해볼 내용은 3,4 과정이다. 유저는 로그인 하기 위한 세가지 방법을 진행할 수 있다. 첫 번째, 유저의 아이디와 비밀번호로 인증 요청 두 번째, OAuth2를 인증 요청 세 번째, OTP인증 요청 요청은 Security Filter가 인터셉트하여 인증을 위한 ProviderManager의 authenticate 메서드를 호출한다. ProviderManager는 Audentication Provider를 Implement한 클래스들을 모두 호출하여 인증성공을 반환하는 클래스가 있는지 확인한다. 우리는 Authentication Prov..
[Java - Spring Security6] PasswordEncoder와 BCryptPasswordEncoder, 그 이외의 암호화 클래스들
·
Spring/Security6
목차 1. 암호화 표준 2. 비밀번호 검증 순간의 코드 3. 해싱과 PasswordEncoder로 비밀번호가 인증되는 과정 4. PasswordEncoder의 메서드들 5. PasswordEncoder의 다양한 Encoder들 6. BCryptPasswordEncoder적용하기 1. 암호화 표준 암호화 표준 - 어느 것이 적합할까? Encoding 데이터를 한 형식에서 다른 형식으로 변환 어떠한 기밀성도 포함하지 않는다. 누구든지 디코딩 가능, 완전 가역적 비밀번호 관리에는 적합하지 않다. 예시 ) ASCII, BASE64, UNICODE Encryption 기밀성을 보장 데이터를 암호화하려고 할 때 특정 알고리즘을 따르고 비밀 키를 제공한다. 복호화하는데 필요한 것이 비밀 키다. 또한 동일한 알고리즘이..
[Java - Spring Security6] Config파일 해석 및 직접 FilterChain만들기
·
Spring/Security6
우선 내 컨트롤러 다이어그램을 먼저 보여주자면! Controller Diagram 모든 컨트롤러는 REST API로 호출하는 방식이며 Spring Security 프레임워크가 적용되어있다. 모든 API호출 경로는 Security에서 인증 및 인가를 받아야 정상적인 응답을 받을 수 있다. Security는 Filter를 통해 코드가 구현되어 있다. 위 컨트롤러의 경로로 요청을 보낼 경우 나타나는 Security의 기본 창 아이디와 비밀번호를 자격 인증을 요구하고 있다. 위와 같이 이루어지는 Security 6에서 제공하는 기본 샘플을 먼저 살펴보자. 이 중 1번의 과정이 아래의 코드에 구현되어 있다. @Configuration(proxyBeanMethods = false) @ConditionalOnDefa..