🚀 Security 테스트 스프링 환경에서 Security를 적용할 경우 인증된 토큰을 가진 사람만 접근이 가능하다 이 경우 단위 테스트를 할 때에 어떻게 접근해야하는지 알아야 한다. 기존에 다음과 같이 유저 정보가 입력되어 있어야한다. @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser(User.withDefaultPasswordEncoder() .username("user1..
🚀 스프링 시큐리티 스프링 환경은 정책에 따른 여러 Spring-Security가 공존할 수 있어 필터 Filter- Chain에 적용할 경우 충돌 문제가 생긴다. 때문에 Filter- Chain에 Proxy를 구성하여 시스템이 보안 상태를 동적으로 선택할 수 있도록 구성할 수 있다. 🍕 Authentication(인증)의 구조 🍕 CSRF(Cross-Site Request Forgery) CSRF는 웹 애플리케이션의 취약점 중 하나로, 피해자가 의도하지 않는 요청을 통한 공격이다. 🌠 Get 방식 공격 / Post 방식 공격 물론 공격자가 직접 Get요청을 보낼 수는 없다. 공격자의 의도를 실현 하기 위해서는 피해자가 아래와 같은 요청을 보내도록 유도해야한다. 공격 방법으로는 Link/ Image 공격..
서론 홈페이지 제작과정에서 가장 중요한 것은 보안이라고 생각한다. 사용자의 정보를 크립토그래피 과정을 통해 해쉬처리하고 JWT를 통해 로그인 유지와 인증을 보장하는 과정은 쉬운 과정은 아니었다. 그중에서도 SecurityConfig 를 구성하는 과정은 보기만 해서는 이해할 수 없었다. 때문에 직접 로그인 화면을 제작하고 스프링 Security 에서 제공하는 HttpSecurity 메소드를 직접 사용해보며 스프링 보안에 한발 더 접근해 보도록 한다. 어떤 로그인 화면을 가져올 것인가? 스프링에서는 기본적으로 제공되는 보안 화면이 있다. 일방적으로 로그인만 가능하고 회원가입 구성이 없어 개발자 이외에는 로그인이 불가능하다. 반대로 개발자가 직접 제작하는 페이지를 사용하고자 한다면 SecurityConfig ..
목표 @Controller 페이지를 개설 후 JWT 토큰이 발급된 사용자만이 접근할 수 있도록 기능을 구성하여 접근 권한 관리하도록 한다. 구현 1. 멤버등록(회원가입) 구현 웹페이지 접근 이전에 사용자가 가입된 상태인지 확인하도록 한다. 구현은 CRUD 구현괴 유사하지만 보한 특성을 강화하기 위해 Password는 PasswordEncoder.encode 메소드를 통해 함수화 한다. @RestController @RequiredArgsConstructor public class MemberController { final MemberRepository memberRepository; final PasswordEncoder encode; @PostMapping("/api/member") public St..
JSON Web Token? JSON 웹 토큰(JSON Web Token, JWT, "jot”[1])은 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로, 페이로드는 몇몇 클레임(claim) 표명(assert)을 처리하는 JSON을 보관하고 있다. 이를테면 서버는 "관리자로 로그인됨"이라는 클레임이 있는 토큰을 생성하여 이를 클라이언트에 제공할 수 있다. 그러면 클라이언트는 해당 토큰을 사용하여 관리자로 로그인됨을 증명한다. 구조 JWT는 크게 (Header , Payload , Sign) 3가지로 나뉘며 역할은 다음과 같다. 구조 표현 역할 Header { "alg" : "HS256", "typ" : "JWT" } Token의 타입(jwt, jws 등)과 해시 암호화 알고리..
- Total
- Today
- Yesterday
- kakao
- spring-cloud
- 그래프
- interview
- 백준
- 릿코드
- 매트랩
- 자바
- 면접
- ajax
- CS
- 알고리즘
- 자격증
- 디자인패턴
- 스프링
- java
- JPA
- security
- C언어
- Spring
- 수학
- Algorithm
- docker
- Matlab
- Solid
- springboot
- OOP
- 스프링부트
- 프로그래머스
- nginx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |