일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- 스프링 빈
- Javascript
- spring
- SQL
- JPA
- Effective Java
- db
- DI
- mybatis
- resultMap
- 스프링 컨테이너
- 필드 주입
- 싱글톤
- 스프링 부트 기본
- 스프링 부트 입문
- springboot
- assertThat
- 스프링 부트
- java
- thymeleaf
- jdbc
- 스프링부트
- 생성자 주입
- kafka
- DIP
- assertThrows
- @Configuration
- sqld
- 스프링 프레임워크
- Today
- Total
목록Framework/Spring Boot (32)
선 조치 후 분석
웹 개발에서 로그인이나 사용자 인증 기능을 구현할 때, Session(세션)과 JSESSIONID는 가장 기본적이면서 중요한 개념이다. 최근 실무에서 접하면서 알게 된 JSESSIONID와 세션 갱신의 동작 방식을 정리했다.세션(Session)과 JSESSIONID란?세션(Session)서버가 사용자의 정보를 일정 시간 동안 저장하는 방법주로 로그인정보, 장바구니, 최근 조회 내역등 사용자별 개별 데이터를 저장할 때 사용 JSESSIONIDWAS(톰캣, JBoss 등)가 발급하는 세션 식별자 쿠키브라우저는 이 값을 쿠키로 저장하고, 서버에 요청할 때마다 같이 전송세션 갱신(연장)과 JSESSIONID의 관계 JSESSIONID가 포함된 요청이 올 때마다 세션이 자동으로 연장된다.서버(WAS)는 JSESS..

웹 개발에서 로그인이나 사용자 인증 기능을 구현할 때, Session(세션)과 JSESSIONID는 가장 기본적이면서 중요한 개념이다. 최근 실무에서 접하면서 알게 된 JSESSIONID와 세션 갱신의 동작 방식을 정리했다.세션(Session)과 JSESSIONID란?세션(Session)서버가 사용자의 정보를 일정 시간 동안 저장하는 방법주로 로그인정보, 장바구니, 최근 조회 내역등 사용자별 개별 데이터를 저장할 때 사용 JSESSIONIDWAS(톰캣, JBoss 등)가 발급하는 세션 식별자 쿠키브라우저는 이 값을 쿠키로 저장하고, 서버에 요청할 때마다 같이 전송세션 갱신(연장)과 JSESSIONID의 관계 JSESSIONID가 포함된 요청이 올 때마다 세션이 자동으로 연장된다.서버(WAS)는 JSESS..

프로젝트를 진행하면서, 로그인 파트를 담당하게 되었고, 세션 클러스터링까지 고려해야 하는 상황이 생겨서 이를 해결한 사례를 정리해 봤다.1. 세션 클러스터링이란?WAS 인스턴스가 2개 이상일 때,로그인한 사용자 세션을 모든 서버에서 동일하게 접근할 수 있도록 하는 구조Spring에서는 기본적으로 서버 메모리 내 HttpSession만 사용하므로여러 서버에서 로그인 세션을 공유하려면 세션 클러스터링 필요 2. 왜 Infinispan을 사용했나? 항목이유 ✅ JBoss 기본 내장 Infinispan은 JBoss EAP/Wildfly에 기본 내장된 고성능 분산 캐시 ✅ 고성능 분산 캐시 세션뿐 아니라 사용자 인증, 권한 등의 캐싱에도 활용 가능 ✅ 클러스터 이벤트 리스닝 캐시 변경 이벤트를 각 노드에..
Spring Security를 사용하면서 직접 `AuthenticationProvider`를 구현했는데, 문득 궁금해졌다. UsernamePasswordAuthenticationToken을 넘기면 어떻게 내가 만든 Provider가 호출되는 거지?이 궁금증을 해결한 과정을 정리한다.1.Spring Security 로그인 방식 개념Spring Security는 Spring 기반 애플리케이션의 **인증(Authentication)**과 **인가(Authorization)**를 위한보안 프레임워크 로그인 과정은 인증(Authentication) 단계이며, 사용자의 신원을 확인하는 것이 목적2.로그인 처리의 기본 흐름 Spring Security는 기본적으로 UsernamePasswordAuthenticatio..
일반적으로 스프링 시큐리티 인증을 받은 로그인한 사용자의 정보를 타임리프에서 사용하고 싶을 때 사용Spring Security와 Thymeleaf는 자연스럽게 통합되어 인증 및 권한 정보를 템플릿에서 쉽게 접근할 수 있도록 지원Spring Security의 인증정보를 Thymeleaf 템플릿 내에서 접근할 때는 #authentication 또는 #authorization이라는 헬퍼 객체를 사용#authentication 헬퍼 객체#authentication은 현재 인증된 사용자의 정보를 가져오는 데 사용Spring Security의 Authentication 객체에 있는 다양한 정보를 조회 주요 속성#authentication.name : 현재 로그인한 사용자의 이름 #authentication.prin..
JSP vs ThymeleafJSP는 일반적으로 Java MVC 구조에서 View의 역할을 하는데, 요즘은 Spring에서는 View의 역할로Thymeleaf를 더 선호한다. JSP와 Thymeleaf의 가장 큰 차이는 Jar파일로 export 가능한지의 여부이다.Spring으로 빌드하면 기본적으로 Jar파일로 빌드가 되는데, JSP는 Jar 패키징이 불가능하고, War 패키징만 가능하다. 그래서 Jar로 패키징이 가능한 Thymeleaf를 사용하는 것이 더 좋고 편리하다. War로 패키징을 하려면 WAS가 필요하고 사전에 정의된 구조만을 사용해야 하기 때문에 복잡하다.그래서 Jar로 패키징 하는 것이 더 편리하다. Spring Boot + JSP로 프로젝트를 Jar로 빌드해 실행하면, 브라우저에 오류..