legacy/Spring Security
-
[Spring-Security] 사용자 인증 처리 flowlegacy/Spring Security 2024. 4. 30. 11:22
Security Filters역할요청된 정보를 가지고 UsernamePasswordAuthenticationToken 생성생성된 Token을 AuthenticationManager로 전달인증이 완료된 Authentication 객체를 Security Context에 저장" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스사용자가 username, password를 입력 후 로그인을 시도하면 Security Filter가 입력 정보를 가로챕니다. 가로챈 username과 password는 UsernamePasswordAuthenticationToken에 저장됩니다.Authentication Manager역할여러 개의 구현체인 Authentication Providers를 가진다.사용..
-
[Spring-Security] 인코딩(Encoding), 암호화(Encyrption), 해싱(Hashing), 그리고 Spring Security에 적용하기legacy/Spring Security 2024. 4. 28. 22:25
인코딩, 암호화, 해싱은 모두 데이터 보안을 위한 기법이지만 각기 다른 목적과 방식을 갖습니다. 애플리케이션에서는 사용자의 비밀번호를 그대로 저장하는 것이 아닌 해싱을 거친 후에 저장합니다. 셋 다 데이터 보안을 위한 기법이라면 인코딩과 암호화를 사용하여 비밀번호를 저장해도 될 것 같은데 그러면 안 되는 이유에 대해서도 알아보겠습니다. 인코딩인코딩의 목적은 데이터를 다른 형식으로 변환하여 표현하는 것입니다. 이는 데이터를 저장하거나 전송할 때 형식을 표준화하거나 압축하는 등의 용도로 사용됩니다. 즉, 누군가를 못 알아보게 하는 목적이 아닌 사용성을 위해 사용되는 방식입니다. 예를 들어, 이미지를 인코딩하면 데이터를 효율적으로 전송할 수 있습니다. 이미지의 사이즈가 크기 때문에 이를 인코딩을 하여 압축하면..
-
[Spring-Security] JdbcUserDetailsManager와 CustomDetailsManagerlegacy/Spring Security 2024. 4. 28. 16:24
Username과 Password를 입력하여 인증하는 방법으로, Spring Security에서 사용되는 3가지 방식은 다음과 같습니다.InMemoryUserDetailsManagerJdbcUserDetailsManagerCustomUserDetailsManagerAuthenticationManager는 사용자의 Username과 Password에 기반하여 인증을 처리하도록 AuthenticationProviders에 인증 책임을 위임합니다. Authentication Providers의 구현체 중 하나인 DaoAuthenticationProvider가 인증을 담당합니다. DaoAuthenticationProvider 또한 UserDetailsService에 인증 책임을 위임합니다. InMemoryUse..
-
[Spring-Security] Default Security Configurationslegacy/Spring Security 2024. 4. 25. 17:47
Default Security Filter Chain기본적으로 Spring Security 프레임워크는 웹 애플리케이션 내부에 존재하는 모든 경로를 보호한다. 이러한 동작을 하는 이유는 기본적으로 설정된 filter chain 내부의 코드 때문이다. 전체 코드package org.springframework.boot.autoconfigure.security.servlet;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;import org.springframework.boot.a..
-
[Spring-Security] CORS(Corss-Origin Resource Sharing)와 SOP(Same-Origin Policy)legacy/Spring Security 2024. 4. 25. 14:59
실제로 사용자가 웹 애플리케이션을 사용할 수 있는 프로젝트를 진행하고 있다. 그렇다면 당연히 보안 이슈가 발생할 것이라 누구나 예상할 수 있다. 백엔드에서 작성한 API를 프론트와 연동하는 과정에서 CORS라는 단어가 계속 나왔다. CORS라는 단어를 처음 들어보는 내 입장에선 당연히 이해할리가 없었다. 심지어 학부 수업에서도 들어본 적이 없다...😅 그동안 스프링을 공부하면서 왜 CORS라는 것을 들어보지 못 했을까? 이유는 간단했다. 로컬 환경에서 작업할 때는 CORS를 고려할 필요가 없었기 때문이다. CORS 주로 브라우저에서 실행되는 웹 애플리케이션 간에 적용하는 것이다. 내가 만든 API를 Postman으로 호출해보면서 진행했기 때문에 보안 정책이 필요가 없었다. 학교 시험이 끝나면 공부해보고..
-
[Spring-Security] 스프링 시큐리티 내부 플로우legacy/Spring Security 2024. 4. 24. 19:08
Spring Security Filters사용자의 요청이 들어왔을 때, Spring Security Filter가 요청을 가로챕니다. 이때, 요청을 한 사용자가 인증이 필요한지 여부를 식별합니다. 인증이 필요한 사용자인 경우, 로그인 페이지로 이동합니다.Authentication로그인 페이지에서 입력된 인증 정보(username, password)를 사용하여 Authentication 객체를 생성합니다. 이 객체를 가지고 유효한 인증인지 확인하는 과정이 이루어집니다.Authentication Manager넘겨받은 Authentication 객체가 유효한 인증인지 확인합니다. Authentication 객체를 Authentication Providers로 넘겨 유효성 검사를 위임합니다. 이때,..