일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 14891
- HttpRequestMethodNotSupportedException
- Session Registry
- SpringCloudConfig
- Java
- openTelemetry
- tailsamplingprocessor
- 백준
- 1916
- github actions
- 17144
- AWS
- github
- 프로그래머스
- 14889
- 15686
- RestControllerAdvice
- RequiredArgsConstructor
- self-hosted runners
- 자바
- Spring
- 1260
- amazon-ecr-login
- Value annotation
- aws-mysql-jdbc
- 12100
- ConcurrentSessionControlAuthenticationStrategy
- Spring Security
- Spring Authorization Server
- Session Fixation Protection
- Today
- Total
목록PROGRAMMING (30)
한울이

1. 문제상황 조건 똑같은 계정으로 로그인 시도 하는 부하테스트 spring security maximum session 10으로 설정 부하 테스트 도중 session을 expire 시킬 수 없다는 log 가 찍힘 2. debugging spring security 는 ConcurrentSessionControlAuthenticationStrategy 에서 동일한 유저의 maximunm session 을 처리함 session registry를 통해 모든 session을 가져온 후 maximum session count 확인 (SpringSessionBackedSessionRegistry 사용중) 만약 설정한 maximum session count 를 초과하면 가장 오래된 session을 만료시킴 (spr..

1. Servlet session 1-1. session 이 없을 때 RequestFacade.java Connector.java/Request ManagerBase.java 1-2. session 있을 때 Connect.java/Request 2. Spring session with redis 2-1. session 없을 때 SpringHttpSessionConfiguration.java - SessionRepositoryFilter 등록 SessionRepositoryFilter.java SessionRepositryRequsetWrapper 생성 RedisIndexedSessionRepository.java SessionRepositoryFilter.java (이 부분은 session 있을 때 / ..

Spring batch 를 k8s cronjob 을 사용하여 배포 하면서 겪었던 이슈 목표 Spring batch 를 실행하면서 error가 발생해서 정상적으로 종료하지 않으면 k8s cronjob 에 설정해놓은 restartPolicy 를 통해서 재실행하고, slack에 알림 발송 이슈 일부러 batch 작업중에 exception 발생하도록 코드를 넣고 cronjob을 실행 -> exception이 발생하고 batch가 종료되고 나서 pod의 상태가 Completed -> pod 가 정상적으로 종료되었으므로 restartPolicy 를 통해서 재실행 하지 않고 slack에도 알림 발송 하지 않음 원인 spring batch에서 exception이 발생했지만 exit code는 0으로 반환하고 종료 ->..

lombok에서 제공하는 @RequiredArgsConstructor 를 사용해서 bean들을 생성자 주입을 하고있었다. 그러던 중 @Qualifier 를 사용해서 어떤 bean을 주입해야하는지 명시해야 할 상황이 생겼다. 그런데 NoUniqueBeanDefinitionException이 발생하면서 @Qualifier로 지정한 bean을 주입하지 못하는 상황이 발생했다. 알고보니 lombok이 제공하는 @RequiredArgsConstructor는 애노테이션 까지 함께 포함해서 생성자를 만들지는 않는다고 한다. 그래서 @RequiredArgsConstructor를 사용하지 않고 생성자를 직접 만들어서 주입을 하거나 lombok.config를 수정해야 했다. 참조 https://www.inflearn.co..

회사에서 업무를 하다가 HttpRequestMethodNotSupportedException 에 대한 처리를 해야 하는 상황이 생겨서RestControllerAdvice를 사용하여 exception을 handling 하고 있는 곳에 추가해서 처리하려고 했다. 예시 그런데 내가 정의한 ExceptionHandler 에서 exception이 처리되지않고DefaultHandlerExceptionResolver에서 exception이 처리되었다. 알고 보니 basePackageClasses = BaseController.class 부분이 문제였다. 참조 https://stackoverflow.com/questions/56459170/spring-controlleradvice-fail-to-override-han..

회사에서 자주 조회하는 정보를 캐시(redis 사용)에 저장해서 쓰려고 Cacheable annotation 을 사용하였다. Cacheable를 적용시킨 메소드를 호출하고 redis를 확인했는데 캐싱이 되지않고 있었다. 로그를 보니 condition에서 계속 실패해서 캐싱을 하지않았다. document를 찾아보니 결과값(#result)을 caching 조건에 사용하려면 condition 파라미터 말고 unless 파라미터를 사용해야 한다는 것을 알았다.