회사에서 azure를 사용중인데, 릴리즈 준비중인 prod 서버에서 특이한 문제가 발생했다. (아래 내용은 모두 실제상황과 유사하게 "재현" 및 "각색" 된 것임을 밝힌다.) 스프링 부트 앱에서 google oauth2 인증시에 아래와 같은 에러가 발생했다. 검색해보니 private IP로 접근해서 ouath2 인증이 제대로 되지 않는 이슈였다. 하지만, 난 사내 dns를 통해 url을 입력해 서버에 접근했고 당연히 내부 ip가 사용되면 안되었다. 개발자 툴로 확인해보았다. (보안상 이유로 key값은 모두 지웠다.) Location header 내 쿼리스트링의 "redirect_uri" 의 값에 내부 ip가 찍히고 있었다. 당시에 사내 oauth2 sso 개발자가 휴가 중이었어서 몰랐지만, 로그인 성공후..
이클립스로 javaEE 어플리케이션을 개발하다보면, 가끔 의도적으로든, 실수로든 실행중인 jar 파일을 삭제하거나 교체하는 경우가 있다. 놀라운 것은 이때의 동작이 HP-OS, linux, Windows의 동작이 모두 다르다는 것이다. 일단 윈도우즈 먼저 살펴보자. 윈도우즈는 어떤 파일을 삭제하기 굉장히 까다롭다. 어떤 프로세스가 read lock을 파일에 걸게 되면, 운영체제가 파일락을 걸어버린다. 그리고 삭제할 때, 삭제가 되지 않도록 한다. 가장 대표적인 예가 토렌트와 악성코드가 있다. 토렌트에서 배포중이거나, 다운로드를 받고 있는 파일을 토렌트가 아닌 윈도우 창에서 삭제하려고 하면 삭제가 되지 않는 경험이 있을 것이다. 혹은, 어떤 파일이 악성코드에 감염되었는데, 해당 파일을 삭제하려고 하니, 삭..
얼마전에 다음과 같은 이슈가 들어왔다. 톰캣과 JEUS(상용 WAS서버의 하나)의 Location Header가 다르다. 톰캣은 Location 헤더에 상대경로를 사용하고 있고, JEUS는 절대경로를 사용하고 있다. 이로 인해 톰캣 기반으로 만든 솔루션이 오작동 하고 있다. 톰캣의 http 헤더 참고로 제우스는 location header 를 보낼 때 절대경로로 보낸다(주소가 들어가 있어 사진은 생략). 아마 솔루션 개발자 측에서는 당연히 상대경로로 올것이라고 예상하고, 절대경로로 변환하는 로직을 넣었을 것이라고 추정해볼 수 있다. 여기서 우리가 살펴봐야 할 것은 두 가지이다. Location 헤더가 뭐지? 왜 톰캣과 제우스가 동작이 다를까? 이에 대해서는 HTTP/1.1 스펙과 서블릿 스펙, 톰캣의 b..
- Total
- Today
- Yesterday
- 홈택스
- 탈세
- Spring
- 광군제
- 공익제보단
- Thymeleaf
- 티스토리챌린지
- Request
- 토스페이
- Java17
- ouath2
- 알리
- 알리익스프레스
- 전세사기
- 오블완
- ORM
- springboot
- k베뉴
- 포상금
- springboot3
- 부가가치세
- 한국교통안전공단
- 현금영수증
- n+1
- Azure
- 안전신문고
- java
- JPA
- tomcat
- 이륜차
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |