[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..
[Java - Spring Security6] Spring Security를 사용하는 이유 및 아키텍처
·
Spring/Security6
보안이 왜 중요한가? 데이터 손실 또는 비즈니스 로직 손실을 초래할 수 있음 이러한 손실은 법적 처벌까지 따라갈 수 있다. 대부분의 공격에 대해 회피하고 정보를 보호하기 위함 환경 구성 Java 17, Spring Web, devtools, Spring Security Spring security 의존성을 추가하게되면 어떠한 요청에도 응답하지 않고 자격증명을 요구한다. 아무것도 설정하지 않은 Security 프로젝트 첫 인증후에는 곧바로 들어갈 수 있다. 재시작할때마다 새로운 빔리번호를 받고 가장 낮은 cvrt어플리케이션에서는 작동하지 않을 수 있다. 저장 시스템에 자격증명을 저장하고나 자격증명을 요구하는 것 properties 설정 비생산 애플리케이션, 내부 애플리케이션 , 작은 poc어플리케이션을 만..