본문 바로가기

분류 전체보기52

[JAVA] 내부 클래스가 컴파일되면? 지난 포스트에서 작성했던 소스에 내부 클래스로 구현하였던 인증 세션 부분이 컴파일했을 때 어떤 식으로 변경되는지에 대하여 기록하려 합니다. 자동 배포 환경이 구축되어있지 않은 상황에서 바이트 코드가 누락되어 동작오류가 발생하였습니다. JAVA Compile 우선 JAVA의 컴파일에 관하여 간략히 기록하겠습니다. JAVA의 모토인 Write once, run everywhere(한번 작성, 어디서나 실행)에 따라 자바 소스는 JVM위에서 동작 가능한 상태인 Byte Code로 컴파일됩니다. 이때 Class 내부에 작성한 내부 클래스는 어떤 식으로 컴파일될까요? Inner Class의 Byte Code 결과는 따로 컴파일된다 였습니다. 예제와 디컴파일한 Byte Code를 살펴보겠습니다. // OuterCl.. 2020. 7. 8.
[JAVA] SMTP 발송(feat.Naver) Java언어와 SMTP를 이용하여 메일을 발송하는 예제입니다. 네이버 메일 설정 1. 내 메일함 설정으로 들어갑니다. 2. POP3/IMAP 설정으로 들어갑니다. 3. IMAP/SMTP 설정으로 들어갑니다. 4. IMAP/SMTP 사용을 사용함으로 변경합니다. 5. 변경한 설정을 적용합니다. 6. SMTP 요청을 전송할 정보임으로 확인해주세요 pom.xml org.simplejavamail simple-java-mail 6.0.4 저장소에서 원하시는 버전의 의존성 패키지를 선택해서 프로젝트에 불러와주세요. 소스 public class MailUtil { /** 메일 HOST **/ private static final String HOST = "smtp.naver.com"; /** 메일 PORT **/ .. 2020. 6. 30.
[JSTL] <c:set /> 사용법 JSTL 태그 중 c:set 태그의 간략한 사용법을 기록합니다. 단순 변수 ${data} 단순 변수의 값을 수정하기 위해 위와 같이 사용합니다. 자료구조 속의 변수 ${suit.data} forEach문을 사용하거나 session의 값을 사용할 경우 자료구조에 값이 담겨있는 경우가 있는데, 그런 경우엔 target과 property옵션을 사용하여 값을 수정합니다. 2020. 4. 21.
[CUBRID] Cannot coerce value of domain "character varying" to domain "datetime". 오류해결 너무 어이없는 실수여서 간단히만 기록합니다. 문제상황 CUBRID에서 ALTER TALBE 실행 후, 수정한 쿼리에서 Cannot coerce value of domain "character varying" to domain "datetime".오류가 발생. 해결 ALTER TALBE 실행 후 추가된 컬럼이 테이블 가장 마지막에 추가되었고, 수정한 쿼리가 INSERT SELECT 구문이였는데 INSERT 컬럼을 명시적으로 적어주지 않아 SELECT한 데이터와 INSERT할 테이블의 타입이 불일치 하는 오류가 발생하였습니다. ALTER TABLE시 추가된 칼럼의 위치를 SELECT절과 같도록 변경하여주어 해결했습니다... 2020. 4. 9.
[JAVA] FindBugs 오류처리 Eclipse 플러그인인 FindBugs를 이용하여 간단하게 JAVA Secure Coding검사를 진행하였습니다. 그 중 발견했더 오류 몇가지를 기록하려합니다. 버전상의 문제로 FindBugs를 사용하였지만 최신버전 JAVA와 프로젝트에서는 SpotBugs를 사용하시면 더 좋을것같아요. Call to equals() comparing different types 간단하지만 생각보다 많이 검출되는 오류입니다. //수정전 if(("").equals(value) || value == null ){ //수정후 if(value == null ){ String타입이 아닌 변수를 .equals 메서드를 통하여 비교했기에 발생했던 오류였습니다. 변수의 상태가 제네릭 한 상태일때 주의하면 좋겠습니다. Invocatio.. 2020. 3. 30.
[Web Security] Web Browser XSS Protection Not Enabled OWASP ZAP을 이용하여 웹 취약점 검사 후 발견한 취약점 중 Web Browser XSS Protection Not Enabled에 관한 취약점을 처리하는 방법을 기록합니다. 본 게시글은 JAVA, Spring 환경을 기반으로 작성하였습니다. 문제 상황 OWASP ZAP을 이용하여 웹 취약점을 점검한 결과입니다. 경고의 내용은 Header에 X-XSS-Protection헤더가 Enable 되어있지 않다는 내용입니다. 위 기능은 IE, Chrome 등 브라우저에서 페이지 로드 중 XSS 공격을 감지할 때 로드를 중지시킬 수 있도록 하여주는 옵션입니다. 웹 서버에서도 설정할 수 있지만 이번 글에서는 소스에서 처리해주도록 하겠습니다. 해결방법 public class HttpHeaderSecurityFil.. 2020. 3. 23.