public boolean isValid(HttpServletRequest request) { ReCaptcha recaptcha = ReCaptchaFactory.newReCaptcha(publicKey, privateKey, false); ReCaptchaResponse response = recaptcha.checkAnswer( request.getRemoteAddr(), request.getParameter("recaptcha_challenge_field"), request.getParameter("recaptcha_response_field")); return response.isValid(); }
public static void _recaptcha( Map<?, ?> args, Closure body, PrintWriter out, ExecutableTemplate template, int fromLine) { final String disabled = Play.configuration.getProperty("ugot.recaptcha.disable", "false"); if ("true".equals(disabled.trim().toLowerCase())) { return; } String publickey = Play.configuration.getProperty("ugot.recaptcha.publicKey", "YOUR_RECAPTCHA_PUBLIC_KEY"); String privatekey = Play.configuration.getProperty( "ugot.recaptcha.privateKey", RecaptchaValidator.YOUR_RECAPTCHA_PRIVATE_KEY); if (publickey == null || privatekey == null || publickey.trim().length() == 0 || privatekey.trim().length() == 0 || "YOUR_RECAPTCHA_PUBLIC_KEY".equals(publickey) || RecaptchaValidator.YOUR_RECAPTCHA_PRIVATE_KEY.equals(privatekey)) { throw new TemplateExecutionException( template.template, fromLine, ERROR_MSG, new TagInternalException(ERROR_MSG)); } else { Properties props = new Properties(); Object o = args.get("tabindex"); if (o != null) { String tabindex = o.toString(); if (tabindex != null) props.put("tabindex", tabindex); } String theme = (String) args.get("theme"); if (theme != null) props.put("theme", theme); String lang = (String) args.get("lang"); if (lang == null) { // figure what language the application use and see if recaptcha // supports it, defaults to en lang = Lang.get(); if (lang == null || lang.trim().length() == 0 || !isLangSupported(lang)) lang = "en"; } props.put("lang", lang); // add support for captcha over https: Boolean https = (Boolean) args.get("https"); if (https == null) { https = false; } String captcha; if (https) { captcha = ReCaptchaFactory.newSecureReCaptcha(publickey, privatekey, false) .createRecaptchaHtml(null, props); } else { captcha = ReCaptchaFactory.newReCaptcha(publickey, privatekey, false) .createRecaptchaHtml(null, props); } out.print(captcha); } }
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write("\n\n\n\n\n\n\n<html>\n<head>\n <title>"); if (_jspx_meth_fmt_message_0(_jspx_page_context)) return; out.write( "</title>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/global.css\">\n <style type=\"text/css\">\n .drop-shadow {\n font-weight: bold;\n font-size: 14pt;\n color: white;\n text-shadow: black 0.1em 0.1em 0.2em;\n padding-top: 21px;}\n </style>\n <meta name=\"decorator\" content=\"none\"/>\n</head>\n\n"); org.jivesoftware.util.WebManager webManager = null; synchronized (_jspx_page_context) { webManager = (org.jivesoftware.util.WebManager) _jspx_page_context.getAttribute("webManager", PageContext.PAGE_SCOPE); if (webManager == null) { webManager = new org.jivesoftware.util.WebManager(); _jspx_page_context.setAttribute("webManager", webManager, PageContext.PAGE_SCOPE); } } out.write('\n'); java.util.HashMap errors = null; synchronized (_jspx_page_context) { errors = (java.util.HashMap) _jspx_page_context.getAttribute("errors", PageContext.PAGE_SCOPE); if (errors == null) { errors = new java.util.HashMap(); _jspx_page_context.setAttribute("errors", errors, PageContext.PAGE_SCOPE); } } out.write('\n'); webManager.init(request, response, session, application, out); boolean create = request.getParameter("create") != null; String username = ParamUtils.getParameter(request, "username"); String name = ParamUtils.getParameter(request, "name"); String email = ParamUtils.getParameter(request, "email"); String password = ParamUtils.getParameter(request, "password"); String passwordConfirm = ParamUtils.getParameter(request, "passwordConfirm"); String reCaptchaChallenge = ParamUtils.getParameter(request, "recaptcha_challenge_field"); String reCaptchaResponse = ParamUtils.getParameter(request, "recaptcha_response_field"); RegistrationPlugin plugin = (RegistrationPlugin) webManager.getXMPPServer().getPluginManager().getPlugin("registration"); ReCaptcha reCaptcha = null; if (plugin.reCaptchaEnabled()) { reCaptcha = ReCaptchaFactory.newReCaptcha( plugin.getReCaptchaPublicKey(), plugin.getReCaptchaPrivateKey(), plugin.reCaptchaNoScript()); } // Handle a request to create a user: if (create) { // Validate if (username == null) { errors.put("username", ""); } else { try { username = username.trim().toLowerCase(); username = JID.escapeNode(username); username = Stringprep.nodeprep(username); } catch (StringprepException se) { errors.put("username", ""); } } if (password == null) { errors.put("password", ""); } if (passwordConfirm == null) { errors.put("passwordConfirm", ""); } if (password != null && passwordConfirm != null && !password.equals(passwordConfirm)) { errors.put("passwordMatch", ""); } if (plugin.reCaptchaEnabled()) { ReCaptchaResponse captchaResponse = null; try { captchaResponse = reCaptcha.checkAnswer( request.getRemoteAddr(), reCaptchaChallenge, reCaptchaResponse); } catch (Exception e) { } if (captchaResponse == null || !captchaResponse.isValid()) { errors.put("reCaptchaFail", ""); } } // do a create if there were no errors if (errors.size() == 0) { try { webManager.getUserManager().createUser(username, password, name, email); response.sendRedirect("sign-up.jsp?success=true"); return; } catch (UserAlreadyExistsException e) { errors.put("usernameAlreadyExists", ""); } catch (Exception e) { errors.put("general", ""); Log.error(e); } } } out.write( "\n\n<body>\n\n<div id=\"jive-header\">\n<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" border=\"0\">\n <tbody>\n <tr><td class=\"drop-shadow\"> "); out.print(plugin.getHeader()); out.write("</td></tr> \n </tbody>\n</table>\n</div>\n\n<div id=\"jive-content\">\n\n"); if (!plugin.webEnabled()) { out.write('\n'); out.write('\n'); if (_jspx_meth_fmt_message_1(_jspx_page_context)) return; out.write('\n'); out.write('\n'); } else { out.write("\n\n<p>"); if (_jspx_meth_fmt_message_2(_jspx_page_context)) return; out.write("</p>\n\n"); if (_jspx_meth_c_set_0(_jspx_page_context)) return; out.write('\n'); if (_jspx_meth_c_set_1(_jspx_page_context)) return; out.write('\n'); out.write('\n'); if (!errors.isEmpty()) { out.write( "\n\n <div class=\"jive-error\">\n <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tbody>\n <tr>\n <td class=\"jive-icon\"><img src=\"images/error-16x16.gif\" width=\"16\" height=\"16\" border=\"0\"/></td>\n <td class=\"jive-icon-label\">\n\n "); if (errors.get("general") != null) { out.write("\n "); if (_jspx_meth_fmt_message_3(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("username") != null) { out.write("\n "); if (_jspx_meth_fmt_message_4(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("usernameAlreadyExists") != null) { out.write("\n "); if (_jspx_meth_fmt_message_5(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("name") != null) { out.write("\n "); if (_jspx_meth_fmt_message_6(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("email") != null) { out.write("\n "); if (_jspx_meth_fmt_message_7(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("password") != null) { out.write("\n "); if (_jspx_meth_fmt_message_8(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("passwordMatch") != null) { out.write("\n "); if (_jspx_meth_fmt_message_9(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("passwordConfirm") != null) { out.write("\n "); if (_jspx_meth_fmt_message_10(_jspx_page_context)) return; out.write("\n "); } else if (errors.get("reCaptchaFail") != null) { out.write("\n "); if (_jspx_meth_fmt_message_11(_jspx_page_context)) return; out.write("\n "); } out.write( "\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <br>\n\n"); } else if (request.getParameter("success") != null) { out.write( "\n\n <div class=\"jive-success\">\n <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tbody>\n <tr>\n <td class=\"jive-icon\"><img src=\"images/success-16x16.gif\" width=\"16\" height=\"16\" border=\"0\"></td>\n <td class=\"jive-icon-label\">"); if (_jspx_meth_fmt_message_12(_jspx_page_context)) return; out.write("</td>\n </tr>\n </tbody>\n </table>\n </div><br>\n\n"); } out.write( "\n\n<form name=\"f\" action=\"sign-up.jsp\" method=\"get\">\n\n<div class=\"jive-contentBoxHeader\">"); if (_jspx_meth_fmt_message_13(_jspx_page_context)) return; out.write( "</div>\n<div class=\"jive-contentBox\">\n <div>\n <table cellpadding=\"3\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n <tbody>\n <tr>\n <td width=\"1%\" nowrap><label for=\"usernametf\">"); if (_jspx_meth_fmt_message_14(_jspx_page_context)) return; out.write( ":</label> *</td>\n <td width=\"99%\">\n <input type=\"text\" name=\"username\" size=\"30\" maxlength=\"75\" value=\""); out.print(((username != null) ? username : "")); out.write( "\"\n id=\"usernametf\" autocomplete=\"off\">\n </td>\n </tr>\n <tr>\n <td width=\"1%\" nowrap>\n <label for=\"nametf\">"); if (_jspx_meth_fmt_message_15(_jspx_page_context)) return; out.write( ":</label>\n </td>\n <td width=\"99%\">\n <input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\" value=\""); out.print(((name != null) ? name : "")); out.write( "\"\n id=\"nametf\">\n </td>\n </tr>\n <tr>\n <td width=\"1%\" nowrap>\n <label for=\"emailtf\">"); if (_jspx_meth_fmt_message_16(_jspx_page_context)) return; out.write( ":</label></td>\n <td width=\"99%\">\n <input type=\"text\" name=\"email\" size=\"30\" maxlength=\"75\" value=\""); out.print(((email != null) ? email : "")); out.write( "\"\n id=\"emailtf\">\n </td>\n </tr>\n <tr>\n <td nowrap>\n <label for=\"passtf\">"); if (_jspx_meth_fmt_message_17(_jspx_page_context)) return; out.write( ":</label> *\n </td>\n <td width=\"99%\">\n <input type=\"password\" name=\"password\" value=\"\" size=\"20\" maxlength=\"75\"\n id=\"passtf\">\n </td>\n </tr>\n <tr>\n <td width=\"1%\" nowrap>\n <label for=\"confpasstf\">"); if (_jspx_meth_fmt_message_18(_jspx_page_context)) return; out.write( ":</label> *\n </td>\n <td width=\"99%\">\n <input type=\"password\" name=\"passwordConfirm\" value=\"\" size=\"20\" maxlength=\"75\"\n id=\"confpasstf\">\n </td>\n </tr>\n </tbody>\n </table>\n <br>\n <span class=\"jive-description\">\n * "); if (_jspx_meth_fmt_message_19(_jspx_page_context)) return; out.write("\n </span>\n </div>\n</div>\n\n"); if (reCaptcha != null) { out.write('\n'); out.print(reCaptcha.createRecaptchaHtml(null, null, 0)); out.write('\n'); } out.write("\n<input type=\"submit\" name=\"create\" value=\""); if (_jspx_meth_fmt_message_20(_jspx_page_context)) return; out.write( "\">\n\n</form>\n\n<script language=\"JavaScript\" type=\"text/javascript\">\ndocument.f.username.focus();\n</script>\n\n"); } out.write("\n\n</body>\n</html>"); } catch (Throwable t) { if (!(t instanceof SkipPageException)) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context); } }
/** * Creating HTML code for the captcha formular. * * @param request request * @param type k/kv/datatype/literal * @param site site * @return HTML code */ public static String captcha(HttpServletRequest request, String type, String site, String sort) { ReCaptcha c = ReCaptchaFactory.newReCaptcha( Functions.PUBLIC_reCAPTCHA_KEY, Functions.PRIVATE_reCAPTCHA_KEY, false); String re = "\t\t\t\t<article class=\"captcha\">\n"; re += "\t\t\t\t\t<form action=\"?tab=all&type=" + type + "&site=" + site + "&sort=" + sort + "\" method=\"post\" accept-charset=\"UTF-8\" autocomplete=\"off\">"; re += "\t\t\t\t\t\t<ul>\n"; re += "\t\t\t\t\t\t\t<li>" + c.createRecaptchaHtml(null, null) + "</li>\n"; re += "\t\t\t\t\t\t\t<li><input type=\"submit\" name=\"fcaptcha\" value=\"Send\" /></li>\n"; re += "\t\t\t\t\t\t</ul>\n"; if (request.getParameter("kmapping") != null) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"k\" value=\"" + request.getParameter("k") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"object\" value=\"" + request.getParameter("object") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"property\" value=\"" + request.getParameter("property") + "\" />\n"; if (!request.getParameter("kmapping").equals("Delete")) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"aproperty\" value=\"" + request.getParameter("aproperty") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"aobject\" value=\"" + request.getParameter("aobject") + "\" />\n"; } re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"user\" value=\"" + request.getParameter("user") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"comment\" value=\"" + request.getParameter("comment") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"kmapping\" value=\"" + request.getParameter("kmapping") + "\" />\n"; } // ######################################################################### else if (request.getParameter("kvmapping") != null) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"k\" value=\"" + request.getParameter("k") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"v\" value=\"" + request.getParameter("v") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"object\" value=\"" + request.getParameter("object") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"property\" value=\"" + request.getParameter("property") + "\" />\n"; if (!request.getParameter("kvmapping").equals("Delete")) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"aproperty\" value=\"" + request.getParameter("aproperty") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"aobject\" value=\"" + request.getParameter("aobject") + "\" />\n"; } re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"user\" value=\"" + request.getParameter("user") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"comment\" value=\"" + request.getParameter("comment") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"kvmapping\" value=\"" + request.getParameter("kvmapping") + "\" />\n"; } // ######################################################################### else if (request.getParameter("dmapping") != null) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"k\" value=\"" + request.getParameter("k") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"datatype\" value=\"" + request.getParameter("datatype") + "\" />\n"; if (!request.getParameter("dmapping").equals("Delete")) re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"adatatype\" value=\"" + request.getParameter("adatatype") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"user\" value=\"" + request.getParameter("user") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"comment\" value=\"" + request.getParameter("comment") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"dmapping\" value=\"" + request.getParameter("dmapping") + "\" />\n"; } // ######################################################################### else if (request.getParameter("lmapping") != null) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"k\" value=\"" + request.getParameter("k") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"language\" value=\"" + request.getParameter("language") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"property\" value=\"" + request.getParameter("property") + "\" />\n"; if (!request.getParameter("lmapping").equals("Delete")) { re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"aproperty\" value=\"" + request.getParameter("aproperty") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"alanguage\" value=\"" + request.getParameter("alanguage") + "\" />\n"; } re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"user\" value=\"" + request.getParameter("user") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"comment\" value=\"" + request.getParameter("comment") + "\" />\n"; re += "\t\t\t\t\t\t<input type=\"hidden\" name=\"lmapping\" value=\"" + request.getParameter("lmapping") + "\" />\n"; } re += "\t\t\t\t\t</form>\n"; re += "\t\t\t\t</article>\n"; return re; }
private ReCaptcha createReCaptcha() { return ReCaptchaFactory.newReCaptcha(publicKey, privateKey, includeNoscript); }
private ReCaptchaService() { String publicKey = getKeyFromSystemProperty(PUBLIC_KEY_PROPERTY, PUBLIC_DEVELOPMENT_KEY); String privateKey = getKeyFromSystemProperty(PRIVATE_KEY_PROPERTY, PRIVATE_DEVELOPMENT_KEY); reCaptchaService = ReCaptchaFactory.newReCaptcha(publicKey, privateKey, /* include non script */ false); }
public String getRecaptcha() { ReCaptcha recaptcha = ReCaptchaFactory.newReCaptcha(publicKey, privateKey, false); return recaptcha.createRecaptchaHtml(null, null); }