mjon_git/src/main/java/itn/com/cmm/captcha/CaptchaUtil.java
2023-06-12 11:15:02 +09:00

60 lines
2.2 KiB
Java

package itn.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());
}
}