CompletableFuture future = asyncRestTemplate.exchange(...) .handleAsync((responseEntity, throwable) -> { if (throwable instanceof HttpClientErrorException) { throw new CustomException(((HttpClientErrorException) throwable).getStatusCode()); } else if (throwable instanceof RestClientException) { throw new CustomException(500); } return responseEntity; }); 실제 프로젝트에서 위와같은 코드를 사용했는데 throw new 라인에서 다..
Java 에서 외부 프로세스를 실행하는 기능은 주의해서 다루지 않으면 애플리케이션을 불안정하게 만든다. 해커가 해당 애플리케이션을 공격할 때 RCE가 발생할 포인트가 될 수 있기 때문이다. Java.lang.Process 클래스 외부 프로세스와의 접점인 Process 객체는 java.lang.Runtime 클래스와 java.lang.ProcessBuilder 클래스를 통해서 얻어낼 수 있다. 그에 대한 코드는 다음과 같다. public class ProcessTest { public static void main(String[] args) { String[] command = new String[] {"echo", "ch4njun"}; ProcessTest.byRuntime(command); Proces..