자동가입을 방지하는 문자열 입력을 구현할 때, 보통 많이 사용하는 것이 simplecaptcha와 jcaptcha 라이브러리다. 여기선 simplecaptcha를 이용해서 구현하는 방법을 살펴보겠다. ↓참고한 곳 - http://simplecaptcha.sourceforge.net - http://winflahed.tistory.com/132 - https://github.com/ndkhoiits/Simplecaptcha/blob/master/src/main/java/nl/captcha/servlet/CaptchaServletUtil.java 먼저 필요한 jar파일을 다운로드 받아서 빌드패스에 추가해준다. jj-simplecaptcha.jar, jj-imaging.jar 이 두 개가 필요하다. 빌드패스를..
java 1.4 이상 버전에 있는 crypto를 이용해서 한다. Base64로 인코딩 하는 부분은 apache commons-codec 라이브러리를 사용했다. 다운로드 ☞ http://commons.apache.org/proper/commons-codec/download_codec.cgi 참고한 사이트 ☞ https://gist.github.com/ishikawa/88599 아래 코드를 보고 눈치챈 사람도 있겠지만,, crypto를 이용해 다른 알고리즘으로 암호화/복호화도 가능하다. 자세히 알고 싶다면 ☞ http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyGenerator import java.secur..
이전에 jsp 페이지를 바로 엑셀로 다운로드 하는 방법을 포스트한 적(http://zero-gravity.tistory.com/172)이 있었는데, 이번에 소개할 방법은 자바 라이브러리인 POI를 사용해 엑셀 파일을 생성/추출하는 방법이다. 이전의 방법은 헤더만 엑셀로 변환하는 식이었다면, POI를 사용하는 방법은 html의 header만 바꿔서 출력하는 게 아니라 그냥 바로 자바단에서 엑셀 파일을 핸들링하는 식이다. 헤더만 바꾸는 방법은 앞서 소개했듯이 저장할 때 다른 이름으로 저장해야 한다는 약간의 문제점이 있는데, POI를 사용하면 그럴 필요가 없다. 왜냐, 그냥 파일 자체를 엑셀로 만들어버리기 때문이다. 난이도로 따지면 헤더만 바꾸는 게 더 쉽긴 하다. 하지만, 라이브러리를 사용하는 데에 익숙한 ..
제일 짜증나고 당황스럽고 어찌해야 하는지 모르겠는 에러가 BeanCreationException이다. ㅡㅡ;; 이건 뭐 무작정 빈을 생성할 수 없다고 내뱉는데... 아우!!! 이건 내가 스프링 개발을 하다가 난 에러도 아니고, 다른 쪽에서 개발했던 프로젝트를 내 컴퓨터로 옮겨서 개발 환경 세팅하는 도중에 난 에러다. 그렇다고 이클립스에 Maven과 Spring을 세팅하다가 난 에러도 아니다. 왜냐, 난 그 썅노므 전자정부프레임워크를 사용하기 때문에. ㅡㅡ 자 이럴 땐 당황하지 말고... 1. pom.xml 파일의 repositories 부분을 싹 다 ctrl + x 한 다음에 저장한다. 그런 다음 프로젝트 빌딩을 마치면 다시 지웠던 것을 되돌리고 저장한다. 빌딩이 마치면 제대로 돌아가는지 확인하자. 그래..
[org.springframework.context.support.ReloadableResourceBundleMessageSource] Re-caching properties for filename [classpath:/egovframework/message/message-common_ko_KR] - file hasn't been modified No mapping found for HTTP request with URI [주소] in DispatcherServlet with name 'action' 이런 메시지들이 콘솔에 찍히면서 제대로 돌아가던 매핑이 안될 때가 있다. 전자정부프레임워크만의 문제인 것 같다. 매핑 주소가 오타가 났는지 백번 천번 확인해도 그 문제는 아니었다. 웃기게도 주소를 살짝 바꿔..
OTP 기능을 구현하라는 미션이 떨어졌고, 힌트로는 구글OTP라는 것이 있다라는 것만 받았다. 찾아보니 거의 다 "Google Authenticator"라는 앱을 다운받아서 구글 로그인을 할 때에 이용하는 내용이었다. 뭔가 구글에서 제공하는 API가 있어야 구글앱을 이용해서 개발을 할 수 있을 텐데, 눈을 씻고 찾아봐도 API는 없었다. 찾다찾다 구글앱의 공식 홈페이지에서 파일들을 다운로드 할 수 있는 곳을 찾았는데, C언어로 되어있고 내가 원하는 것은 아니었다. 아마도 SSH로 접속해서 이걸 설치하고 로그인을 할 때에 사용하는 그런 종류인 듯 싶다.(이곳 참고) 알고리즘을 중심으로 찾아본 결과, 아마도 IETF에 있는 RFC6238이라는 문서를 기반으로 구글앱이 이와 같은 알고리즘으로 구현을 해놓은 것..