🚀 Security 테스트 스프링 환경에서 Security를 적용할 경우 인증된 토큰을 가진 사람만 접근이 가능하다 이 경우 단위 테스트를 할 때에 어떻게 접근해야하는지 알아야 한다. 기존에 다음과 같이 유저 정보가 입력되어 있어야한다. @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser(User.withDefaultPasswordEncoder() .username("user1..
서론 홈페이지 제작과정에서 가장 중요한 것은 보안이라고 생각한다. 사용자의 정보를 크립토그래피 과정을 통해 해쉬처리하고 JWT를 통해 로그인 유지와 인증을 보장하는 과정은 쉬운 과정은 아니었다. 그중에서도 SecurityConfig 를 구성하는 과정은 보기만 해서는 이해할 수 없었다. 때문에 직접 로그인 화면을 제작하고 스프링 Security 에서 제공하는 HttpSecurity 메소드를 직접 사용해보며 스프링 보안에 한발 더 접근해 보도록 한다. 어떤 로그인 화면을 가져올 것인가? 스프링에서는 기본적으로 제공되는 보안 화면이 있다. 일방적으로 로그인만 가능하고 회원가입 구성이 없어 개발자 이외에는 로그인이 불가능하다. 반대로 개발자가 직접 제작하는 페이지를 사용하고자 한다면 SecurityConfig ..
암호화(Encode) 웹 서비스 개발에 대해 유저의 정보를 안전하게 저장하기 위해서는 정보를 있는 그대로 저장하기보다 암호화를 통해 복잡한 문자열로 보관하는 방식이 더욱 안전할 것이다. Spring Security 5.3.3 버전에서는 비밀번호 암호화 인터페이스인 PasswordEncoder와 구현체를 지원함으로서 정보의 안전정을 강화 시켰다. Spring Security에는 4가지의 기본 암호화 클래스를 제공하고 있다. BcryptPasswordEncoder : BCrypt 해시 함수 Argon2PasswordEncoder : Argon2 해시 함수 Pbkdf2PasswordEncoder : PBKDF2 해시 함수 SCryptPasswordEncoder : SCrypt 해시 함수 저장된 암호는 복호화가..
Session vs Token Session Session 과 Cookie 인증 방식은 클라이언트의 세션 저장소를 요구하며 로그인시 사용자 정보를 저장하고 Key로 사용되는 세션 ID를 생성한다. 사용은 HTTP Header에 세션 ID가 포함된 Cookie와 함께 클라이언트에 전송하는 방식으로 클라이언트는 이를 세션 저장소에서 비교하여 인증이 완료되면 Request에 따라 응답을 수행한다. 유저가 로그인을 하고 세션이 서버 메모리 상에 저장된다. 이 때 세션을 식별하기 위한 Session Id 를 기준으로 정보를 저장한다. 브라우저에 쿠키로 Session Id 가 저장된다. 쿠키에 정보가 담겨있기 때문에 브라우저는 해당 사이트에 대한 모든 Request 에 Session Id 를 쿠키에 담아 전송한다...
- Total
- Today
- Yesterday
- ajax
- 수학
- Algorithm
- docker
- 프로그래머스
- OOP
- 알고리즘
- interview
- Solid
- kakao
- 자바
- spring-cloud
- springboot
- java
- 스프링
- Matlab
- C언어
- CS
- JPA
- 릿코드
- nginx
- 스프링부트
- 디자인패턴
- Spring
- 면접
- 그래프
- 매트랩
- security
- 백준
- 자격증
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |