package egovframework.com.cmm.captcha; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import nl.captcha.Captcha; import nl.captcha.audio.AudioCaptcha; import nl.captcha.audio.producer.VoiceProducer; import nl.captcha.backgrounds.GradiatedBackgroundProducer; import nl.captcha.servlet.CaptchaServletUtil; import nl.captcha.text.producer.NumbersAnswerProducer; public class CaptchaUtil { public CaptchaUtil() { } public void captchaImg(HttpServletRequest request, HttpServletResponse response){ Captcha captcha = new Captcha.Builder(200, 60) .addText(new NumbersAnswerProducer(6)) .addNoise().addNoise().addNoise() .addBackground(new GradiatedBackgroundProducer()) .addBorder() .build(); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Max-Age", 0); response.setContentType("image/png"); CaptchaServletUtil.writeImage(response, captcha.getImage());; request.getSession().setAttribute("captcha", captcha.getAnswer()); } public void captchaAudio(HttpServletRequest request, HttpServletResponse response){ String getAnswer = (String) request.getSession().getAttribute("captcha"); VoiceProducer vProd = new SetKorVoiceProducer(); //한글 음성을 생성해주는 객체 생성 /* AudioCaptcha ac = new AudioCaptcha.Builder() .addAnswer(new SetTextProducer(getAnswer)) .addVoice() .addNoise() .build();*/ AudioCaptcha ac = new AudioCaptcha.Builder() .addAnswer(new SetTextProducer(getAnswer)) .addVoice(vProd) .addNoise() .build() ; response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Max-Age", 0); CaptchaServletUtil.writeAudio(response, ac.getChallenge());; request.getSession().setAttribute("captcha", ac.getAnswer()); } }