일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시스템프로그래밍
- c
- 백준
- kafka
- 회고록
- SpringSecurity
- 공부기록
- 문자열함수
- github
- 기술블로그
- jwt
- AWS
- 선택정렬
- 협업도구
- testcode
- java
- 코테
- 알고리즘
- 코딩테스트
- git
- 한이음
- 문자열압축
- IT
- 기록
- 자료구조
- codingtest
- Django
- kafkaconsumer
- 트러블슈팅
- 자바
- Today
- Total
목록분류 전체보기 (84)
신뇽이 되어보자

해당 코드는 직접 작성한 것이며, 블로그를 포스팅하면서 이상한 점을 계속해서 변경하는 중입니다(블로그 포스팅의 장점,,) 그러하니 제 코드를 신뢰하지 말아주세요..ㅎ 참고용으로 봐주시면 감사하겠습니다.SecurityConfigSecurityConfig 클래스는 security 환경 설정을 구성하기 위한 클래스이다.WebSecurityConfiguerAdapter를 확장하여 HTTP 요청에 대한 인증 및 권한 부여 규칙을 설정한다. 클래스 어노테이션 @Configuration : Spring의 설정 클래스임을 나타낸다.@EnableWebSecurity : Spring Seucurity를 활성화한다.@RequiredArgsConstructor: final 필드를 가진 생성자를 자동으로 생성한다.JwtReq..
해당 코드는 직접 작성한 것이며, 블로그를 포스팅하면서 이상한 점을 계속해서 변경하는 중입니다(블로그 포스팅의 장점,,) 그러하니 제 코드를 신뢰하지 말아주세요..ㅎ 참고용으로 봐주시면 감사하겠습니다. 사용자가 로그인을 할 때마다 서버에서 세션을 저장하면 사용자가 늘어날 수록 부담이 커진다.이를 해결하기 위해 JWT를 활용하여 Stateless한 사용자 인증 방식을 도입한다. 개발환경 java 17 spring boot 2.7.18 spring security 5.5.2 우선 사용자의 로그인 요청을 받는 컨트롤러부터 차근차근 설명하겠다. 우선 사용자에게 입력받는 username과 password를 포함하는 requestDTO를 하나 생성해줬다.public class AuthenticationReques..

Spring Security란? Spring 기반의 어플리케이션의 보안(인증과, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에,개발자 입장에서 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL요청을 받지만, (웹 컨테이너에서 관리)Interceptor는 Dispatcher와 Controller 사이에 위치한다는 점에서 적용 시기의 차이가 있다.(스프링 컨테이너에서 관리) Client(request)->..

서버 기반 인증 시스템 vs 토큰 기반 인증 시스템서버 기반 인증 시스템이란?(Session / Cookie)서버 측에서 사용자들의 정보를 기억하기 위해 세션을 유지하는데, 이는 메모리 디스크, 데이터베이스 등을 통해 관리한다.클라이언트로부터 요청을 받으면 클라이언트의 상태 정보를 저장하여 유지해야하므로 Stateful한 구조를 가진다. 인증 방식1. 사용자가 로그인시 올바른 사용자임을 확인하고, 고유한 세션 ID값을 부여해 세션 저장소에 저장하고 클라이언트에게 발급해준다.2. 클라이언트는 세션 ID를 받아 쿠키에 저장하고, 인증이 필요한 요청마다 쿠키에 세션ID를 담아 헤더에 보낸다.3. 서버에서는 쿠키를 받아 세션저장소와 비교해 올바른 요청인지 확인한다.4. 인증이 완료되고 서버는 요청에 응답한다..

스프링 강의를 듣다보니 코드를 스프링에 대한 이해없이 짰다는 것을 느끼게 되었다.느끼게 된 것 중 하나는 의존성 주입 방법에 있었는데 일단 의존성 주입 방법들 중에서 유연한 테스트 코드를 작성할 수 있는 생성자 주입방식으로 작성을 해야하는데 나는 모두필드 주입 방식으로 코드를 작성해서 생성자 주입방식으로 바꾸자라고 생각을 했다. 그런데 생성자 주입 방식으로 바꾼 결과 뜬금없이 위에서 에러가 터지기 시작했다. 허허 여기서 느꼈다. 나는 알고 개발한 것이 아니였다 라는 것을... @RequiredArgsConstructor 이라는 어노테이션이 내뿜는 에러메시지는 Constructor with '4' parameters is already defined 라는 것이었다.이미 @RequiredArgsConst..
학교 수업 시간에 SpringSecurity를 사용해서 프로젝트를 진행했었다.왜 SpringSecurity를 사용했는가?Spring 공식 문서에 따르면, Spring Security는 Java 애플리케이션에서 인증과 권한 부여를 모두 제공하는 데 중점을 둔 프레임워크라고 기술되어 있다. 그 핵심은 사용자 정의 요구 사항을 충족하도록 쉽게 확장할 수 있는 점에 있다.Spring Security의 주요 특징은 다음과 같다:인증 및 권한 부여에 대한 포괄적이고 확장 가능한 지원세션 고정, 클릭재킹, 크로스 사이트 요청 위조(CSRF) 등 다양한 보안 공격으로부터 보호서블릿 API와의 통합 지원Spring Web MVC와의 선택적 통합진행 중이었던 프로젝트에서 1대1 문의 채팅방을 구현하는 상황이었고, 유저를 ..