[Error Note] java.lang.IllegalStateException: closed 해결 방법 [ResponseBody.string()을 여러 번 호출]
·
◈ Study/에러노트(Error Note)🧱
- java.lang.IllegalStateException: closed 해결 방법 java.lang.IllegalStateException: closed at okio.RealBufferedSource.select(RealBufferedSource.kt:218) at okhttp3.internal.Util.readBomAsCharset(Util.kt:265) at okhttp3.ResponseBody.string(ResponseBody.kt:187) at G2B.g2b.service.BidService.testAPI(BidService.java:716) at G2B.g2b.controller.MainController.index(MainController.java:20) at java.base/jdk..
[study] JSESSIONID와 tracking-mode 설정 방식 [클라이언트와 세션 ID를 주고받는 방식을 설정하는 속성]
·
◈ Study/기초튼튼 개발지식🥔
- JSESSIONID와 tracking-mode 설정 방식tracking-mode는 Java EE (Jakarta EE) 웹 애플리케이션에서 세션 ID를 클라이언트와 주고받는 방식을 설정하는 속성이다. 즉, JSESSIONID를 어떻게 전달할지 결정하는 역할.- tracking-mode 설정 방식 1) cookie (기본값)JSESSIONID를 쿠키를 통해 전달하는 방식가장 일반적이고 보안이 우수함브라우저가 쿠키를 차단하면 세션이 유지되지 않음- 설정 방법 (web.xml에서 설정) COOKIE2) url (URL 리라이트)JSESSIONID를 URL에 추가하는 방식쿠키를 지원하지 않는 환경에서도 세션 유지 가능하지만 보안 취약점(Session Hijacking 등)이 있음 예제 URL (URL ..
[Error Note] URL 리라이트 때문에 request block 발생하는 문제 해결하기 [;jsessionid=xxx가 사용되면서 request block 발생]
·
◈ Study/에러노트(Error Note)🧱
- URL 리라이트 때문에 request block 발생하는 문제 해결하기WAF, 방화벽 등에서 ;jsessionid=xxx가 포함된 URL을 비정상적인 요청으로 간주하고 차단한다.- 해결 방법1) WAF 예외 설정WAF 또는 방화벽에서 ;jsessionid= 패턴을 허용하도록 설정보안 정책을 조정하여 특정 URL에서는 JSESSIONID 포함을 허용2) 쿠키 기반 세션 유지로 변경가능하면 JSESSIONID를 URL이 아니라 쿠키 방식으로만 사용하도록 설정web.xml에서 URL 리라이트를 비활성화 disableURLRewriting true [study] URL 리라이트(URL Rewriting)란 무엇인가? [JSESSIONID를 URL에 포함하는 방식]- URL 리라이트(URL Rewr..
[study] URL 리라이트(URL Rewriting)란 무엇인가? [JSESSIONID를 URL에 포함하는 방식]
·
◈ Study/기초튼튼 개발지식🥔
- URL 리라이트(URL Rewriting)란 무엇인가? 쿠키를 사용할 수 없는 환경에서도 세션을 유지하기 위해 JSESSIONID를 URL에 포함하는 방식- 왜 URL 리라이트를 사용하는 걸까?1) 쿠키 비활성화 환경 지원 어떤 사용자들은 브라우저 설정에서 쿠키를 차단하거나, 쿠키 없는 환경(일부 프라이버시 모드)에서 접속할 수도 있음. 이때 URL 리라이트를 사용하면 세션이 끊기지 않고 유지가 됨.쿠키를 지원하지 않는 브라우저쿠키가 차단된 환경(보안 정책, 프라이버시 설정 등)2) 초기 로그인 페이지에서 세션 유지 어떤 웹 애플리케이션에서는 초기 요청에서 쿠키를 설정하기 전에 세션이 필요할 수 있음. 이 경우, URL에 JSESSIONID를 포함해 사용자를 식별함.3) 서드파티 쿠키 차단 우회 ..
[study] JSESSIONID란? [Java EE 기반 웹 애플리케이션에서 세션을 식별하는 고유한 ID]
·
◈ Study/기초튼튼 개발지식🥔
- JSESSIONID란? Java EE (Jakarta EE) 기반 웹 애플리케이션에서 세션을 식별하는 고유한 ID 세션 식별자: 사용자의 HTTP 세션을 추적하기 위해 생성됨서버에서 관리: 보통 Tomcat, Jetty, WebSphere 등 Java 기반 WAS에서 자동 생성클라이언트와 공유: 주로 쿠키 또는 URL 리라이트(URL Rewriting)로 클라이언트에게 전달됨- JSESSIONID 동작 방식1) 클라이언트가 서버에 최초 요청사용자가 웹사이트에 처음 접속하면 서버가 새로운 세션을 생성이때 JSESSIONID라는 고유한 세션 ID가 발급됨2) 서버가 JSESSIONID를 응답에 포함기본적으로 쿠키 방식을 사용 (Set-Cookie: JSESSIONID=xyz123; Path=/; Htt..