트러블슈팅 (63) 썸네일형 리스트형 스프링부트에서 Cannot find cache named 캐시명 for Builder 에러 문제서버에서 아래와 같이 'Cannot find cache named '로 시작하는 캐시 에러가 발생했다.java.lang.IllegalArgumentException: Cannot find cache named 'cutoffDate' for Builder[public void com.OperationUtil.removeCutoffDateCache(java.lang.String,java.lang.String)] caches=[cutoffDate] | key='' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='',false,false at org.springframework.cache.interceptor.AbstractCacheR.. application-test.yml의 보안키를 제거하고 Jenkins에 Credential 설정 문제Spring 프로젝트의 application-test.yml 파일에 하드 코딩된 보안키 값을 기재하면 안되었다.다만 보안키 값을 기재하지 않으면 Jenkins에서 PR올린 것에 대해 테스트를 진행할 수 없어서 Test Fail이 났다. 해결Test 용으로 보안키를 새로 생성해서 Jenkins의 환경변수 설정에 넣어주었다. Jenkins > Credentials > System에 들어가 도메인을 추가한다.기존 사용중인 도메인이 있다면, 해당 도메인을 사용하면 된다. 도메인에다 사용할 보안키를 등록해준다.Jenkins에서 PR올릴 때 돌아가는 프로젝트의 Configure에 간다.Build Environment의 Use secret text(s) or file(s)를 설정한 후 저장한다.Variable: .. Oracle DB에 데이터가 있어도 JOOQ로 조회되지 않았던 문제. CHAR 속성 문제 문제아래와 같이 테이블에 데이터를 집어 넣었다.create table EXCHANGE_RATE_CURRENCY( EXCHANGE_RATE_TYPE CHAR(7) not null, CURRENCY_CD_FROM CHAR(3) not null, CURRENCY_CD_TO CHAR(3) not null, constraint EXCHANGE_RATE_CURRENCY primary key (EXCHANGE_RATE_TYPE, CURRENCY_CD_FROM, CURRENCY_CD_TO)); Application에서 JOOQ를 이용해 데이터를 조회하려고 하니, 'DAILY'로 데이터가 하나도 조회되지 않았다.하지만 'AVERAGE'는 조회가 되었다. 원인VARCHAR가 .. IntelliJ에서 애플리케이션 부팅 시 lombok cannot find symbol 에러 해결 문제애플리케이션을 IntelliJ에서 실행시키려고 하는 데 아래와 같은 에러 문구가 나왔다.java: cannot find symbol symbol: class TestDTOBuilder 해결Lombok 설정도 잘 되어있었기 때문에, 제대로 빌드되지 않아 Builder 클래스를 찾을 수 없는 것으로 추측했다.Rebuild Project해서 해결되었다. 참고 자료https://stackoverflow.com/questions/12132003/getting-cannot-find-symbol-in-java-project-in-intellij JMX Port를 통해 공격자가 서버에 접근하는 보안 문제 문제JMX(Java Management Extensions)는 Java 응용 프로그램의 모니터링과 관리기능을 제공한다.JMX에서 사용하는 port에 대한 인증 설정이 없으면 공격자가 JMX port를 통해 원격 접근이 가능하다. 참고로 공격자는 java_jmx_server라는 JMX의 취약점을 이용하는 exploit module을 이용했다.https://www.rapid7.com/db/modules/exploit/multi/misc/java_jmx_server/ 원인supervisor.ini.j2에서 JVM Option을 설정하는데, 여기에 JMX를 사용하기 위해 아래와 같이 JMX 설정이 추가되어 있었다.보다시피, authenticate와 ssl이 false로 보안 설정이 되어 있지 않다. -Dc.. JSP에서 XSS (Cross-Site Scripting) 보안 문제 XSS(교차 사이트 스크립팅, Cross-Site Scripting)는 웹 애플리케이션의 보안 취약점 중 하나로, 공격자가 악의적인 스크립트를 다른 사용자의 브라우저에서 실행할 수 있도록 하는 공격 기법이다.XSS는 주로 웹 애플리케이션이 사용자 입력을 적절히 검증하지 않고 그대로 출력할 때 발생한다. Case 1. Reqeust Parameter에 있는 Script 내용이 에러 페이지에서 실행됨문제아래와 같이 파라미터에 를 넣으면, 에러 페이지에서 script가 실행되었다.스크립트를 실행시킴으로써 서버나 유저 정보를 탈취할 수 있기 때문에 스크립트가 실행되지 않도록 수정해야했다. Front에서 요청을 보낼 때 인코딩 처리가 되어 있었다. 즉 "하지만 공격자가 직접 주소창에 를 써서 요청을 보낼 수 있고.. Kendo React Library에서 Warning: Failed prop type: Invalid prop `children` supplied to `a2` 발생 문제React에서 Kendo Library를 사용해서 화면을 개발하는데, 콘솔창에 아래와 같은 warning이 발생했다.원인React에서 아래와 같이 ButtonGroup과 Button을 사용하고 있었다.조건절인 {buttonControl.button.visibility && ( .... )} 부분을 제거하니 warning이 없어졌다.ButtonGroup이 Button에 prop을 전달해야되는데 조건절로 인해 warning이 발생한 거 같다. 해결ButtonGroup을 이용해 Button 전체를 조절할 일이 없어서, 아래와 같이 ButtonGroup을 제거하였더니 문제가 해결되었다. 클라이언트에서 response.headers['content-disposition'] 호출할 때 undefined로 가지고 올 수 없는 문제. 네트워크에는 response 헤더에 노출 됨. 문제Front에서 파일 다운로드 기능 구현 중, Content-Disposition Response 헤더에 정의되어 있는 fileName을 가지고 오려고 했다.response.headers['content-disposition'] 를 해보지만 undefined이다. 네트워크 헤더에는 filename을 가지고 오고 있었다. 원인기본적으로, 브라우저는 CORS(Cross-Origin Resource Sharing)요청에 대한 응답에서 몇 가지 표준 헤더만 클라이언트에게 노출한다. 기본 표준 헤더는 아래와 같다. Cache-ControlContent-LanguageContent-TypeExpiresLast-ModifiedPragma 그래서 위 값들은 response.headers에 존재하였다. 기본적으로 .. Maven 빌드로 배포 시, 로컬 Repository의 의존성 캐싱 문제로 Build Failure 된 문제 (-U 옵션) 문제서버에 Maven으로 Project를 배포하는 데 아래와 같은 이유로 Build Failure이 일어났다.이 날 Project에서 다운 받을 라이브러리가 먼저 배포되었고, 그 다음에 Project를 배포하였다. 그런데 Project 배포할 때 문제가 생겼다. [exec] [ERROR] Failed to execute goal on project [프로젝트이름]: Could not resolve dependencies for project [프로젝트 이름]:jar:[버전]: Failure to find [다운받을 라이브러리]:jar:[라이브러리 버전] in https://[원격 Repostiory 도메인]/repositories/releases/ was cached i.. TestCode 실행 시 liquibase에서 Table "DATABASECHANGELOG" already exists; SQL statement 에러 문제 Test Code를 돌릴 때 liquibase에서 아래와 같이 'DATABASECHANGELOG" already exists; SQL statement' 라는 에러가 났다. liquibase로 changelog 중 schema.xml을 만들 때 DATABASECHANGELOG라는 테이블을 포함하지 않았고, 생성된 schema.xml에도 create하는 부분이 없는데 DATABASECHANGELOG 생성을 시도하고 있었다. 원인 DATABASECHANGELOG는 liquibaes에서 사용하고 있는 테이블이고, 없으면 liquibase에서 자동으로 생성한다. liquibase에서 DATABASECHANGELOG 테이블을 만들 때, 테이블이 있는 지 없는 지 조사한다. 조사할 때 이미 존재했던 DATAB.. 이전 1 2 3 4 ··· 7 다음