본문 바로가기

모두보기

Spring-loadled 기반 WAS 재기동 없이 소스 반영 JAVA Web Application 개발 진행 시 소스 수정 시마다 WAS(tomcat)를 재구동 해야 하는 불편함이 있음.위의 불편함을 해소하기 위해 JRebel이라는 툴이 있으나 얼마 전 상용으로 전환됨 (구독 형식). 이에 따른 다른 대안을 찾고자 확인한 사항 Spring-loaded - homepage : https://github.com/spring-projects/spring-loaded- maven : http://mvnrepository.com/artifact/org.springframework/springloaded/1.2.6.RELEASE 파일 다운로드 후, 임의 경로 위치Eclipse 설정1. Publishing -> Automatically publish when resources.. 더보기
java.lang.OutOfMemoryError: PermGen space 원인 및 해결 방안 1. 증상 어플리케이션 배포 시, 아래 로깅 후 배포 중단 Failed to define class org.apache.tomcat.util.net.JIoEndpoint$Handler$SocketState in Module "org.jboss.as.web:main" from local module loader @6c62aa33 (finder: local module finder @419431dc (roots: /work/jboss-eap-6.3/modules,/work/jboss-eap-6.3/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.3.3.CP,/work/jboss-eap-6.3/modules/system/layers/base,/work.. 더보기
TM-AC1900 강제 롤백 현상 방지 대상 : TM-AC1900 > RT-AC68U 펌웨어 올려서 사용하는 경우 해당 증상 : 펌웨어 3.0.0.4.384.20648 버전 적용 시, AC1900 으로 강제 롤백되는 현상 발생 방지책 : SSH 접속 후 아래 명령 수행 및 라우터 재부팅 cat /dev/mtd5 > /jffs/mtd5_backup.bin mkdir /tmp/asus_jffs mount -t jffs2 /dev/mtdblock5 /tmp/asus_jffs rm -rf /tmp/asus_jffs/* sync && umount /tmp/asus_jffs\ rm -rf /jffs/.sys/RT-AC68U nvram unset fw_check && nvram commit 더보기
다운로드 가능 파일 및 경로 확인 웹 취약점, 모의해킹 시 빈번히 나오는 권한 없는 디렉토리 내 파일 다운로드 가능한 취약점을 방어하기 위한 코드 public static boolean checkFilePath(String filePath) { Boolean checkResult = true; //다운로드 허용할 디렉토리 설정 String allowPath = "/test/"; //금지 문자열 리스트 String blockchar[] = {"..", "../", "..\\"}; for(int i=0; i%lt;blockchar.length;i++) { if( filePath.indexOf(blockchar[i]) != -1 ){ checkResult = false; } } //다운로드 허용된 디렉토리인지 체크 String path = f.. 더보기
Character Set 확인 단일 프로젝트의 경우, Character Set이 문제가 되는 경우는 극히 드물다. 단, 이기종 간 인터페이스가 이루어지는 경우 문제가 발생하는 경우가 다수다. 아래 코드는 수신된 데이터의 Character Set을 판별하고자 할 때 사용할 수 있다. String [] charSet = {"utf-8","euc-kr","ksc5601","iso-8859-1","x-windows-949"}; for (int i=0; i%lt;charSet.length; i++) { for (int j=0; j%lt;charSet.length; j++) { try { logger.info("[" + charSet[i] +"," + charSet[j] +"] = " + new String(message.getBytes(cha.. 더보기