1
22
23 package com.liferay.portal.captcha;
24
25 import com.liferay.portal.struts.ActionConstants;
26 import com.liferay.portal.struts.PortletAction;
27 import com.liferay.portal.util.PortalUtil;
28 import com.liferay.portal.util.WebKeys;
29
30 import javax.portlet.ActionRequest;
31 import javax.portlet.ActionResponse;
32 import javax.portlet.PortletConfig;
33 import javax.portlet.PortletSession;
34
35 import javax.servlet.http.HttpServletResponse;
36
37 import nl.captcha.servlet.CaptchaProducer;
38
39 import org.apache.commons.logging.Log;
40 import org.apache.commons.logging.LogFactory;
41 import org.apache.struts.action.ActionForm;
42 import org.apache.struts.action.ActionMapping;
43
44
50 public class CaptchaPortletAction extends PortletAction {
51
52 public void processAction(
53 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
54 ActionRequest actionRequest, ActionResponse actionResponse)
55 throws Exception {
56
57 try {
58 PortletSession portletSession = actionRequest.getPortletSession();
59
60 CaptchaProducer captchaProducer = CaptchaUtil.getCaptchaProducer();
61
62 String captchaText = captchaProducer.createText();
63
64 portletSession.setAttribute(WebKeys.CAPTCHA_TEXT, captchaText);
65
66 HttpServletResponse response = PortalUtil.getHttpServletResponse(
67 actionResponse);
68
69 captchaProducer.createImage(
70 response.getOutputStream(), captchaText);
71
72 setForward(actionRequest, ActionConstants.COMMON_NULL);
73 }
74 catch (Exception e) {
75 _log.error(e);
76 }
77 }
78
79 protected boolean isCheckMethodOnProcessAction() {
80 return _CHECK_METHOD_ON_PROCESS_ACTION;
81 }
82
83 private static final boolean _CHECK_METHOD_ON_PROCESS_ACTION = false;
84
85 private static Log _log = LogFactory.getLog(CaptchaPortletAction.class);
86
87 }