blob: 0efc6d0a1aa85532a6442431d7e16d58ee5385d2 [file] [log] [blame]
<%@ page import="org.apache.log4j.*" %>
<%@ page import="org.apache.commons.httpclient.*" %>
<%@ page import="org.apache.commons.httpclient.methods.*" %>
<%@ page import="com.ecyrd.jspwiki.*" %>
<%@ page import="com.ecyrd.jspwiki.util.*" %>
<%@ page import="com.ecyrd.jspwiki.ui.EditorManager" %>
<%@ page import="org.apache.commons.lang.time.StopWatch" %>
<%@ page errorPage="/Error.jsp" %>
<%@ taglib uri="/WEB-INF/jspwiki.tld" prefix="wiki" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:setBundle basename="CoreResources"/>
<%!
Logger log = Logger.getLogger("JSPWiki");
%>
<%
WikiEngine wiki = WikiEngine.getInstance( getServletConfig() );
// Create wiki context and check for authorization
WikiContext wikiContext = wiki.createContext( request, WikiContext.VIEW );
if(!wikiContext.hasAccess( response )) return;
String pagereq = wikiContext.getName();
String content = request.getParameter("text");
if( content != null )
{
String ticket = request.getParameter("Asirra_Ticket");
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod("http://challenge.asirra.com/cgi/Asirra?action=ValidateTicket&ticket="+ticket);
int status = client.executeMethod(method);
String body = method.getResponseBodyAsString();
if( status == HttpStatus.SC_OK )
{
if( body.indexOf("Pass") != -1 )
{
session.setAttribute("captcha","ok");
response.sendRedirect( wikiContext.getURL(WikiContext.EDIT, request.getParameter("page") ) );
return;
}
}
response.sendRedirect("Message.jsp?message=NOK");
}
// Set the content type and include the response content
response.setContentType("text/html; charset="+wiki.getContentEncoding() );
%>
<html>
<head>
<title><wiki:Variable var="applicationname" />: <wiki:PageName /></title>
<%-- <wiki:Include page="commonheader.jsp"/> --%>
<meta name="robots" content="noindex,nofollow" />
<script type="text/javascript">
function HumanCheckComplete(isHuman)
{
if (isHuman)
{
formElt = document.getElementById("mainForm");
formElt.submit();
}
else
{
alert('<fmt:message key="captcha.js.humancheckcomplete.alert" />');
return false;
}
}
function i18nAsirra() {
document.getElementById("asirra_InstructionsTextId").innerHTML = "<fmt:message key="captcha.asirra.please.select" />";
for ( var i = 0; i < 12; i++)
{
document.getElementById("asirra_AdoptMeDiv" + i).getElementsByTagName("a")[0].innerHTML= '<font size="-1">' + '<fmt:message key="captcha.asirra.adopt.me" />' + '</font>' ;
}
document.getElementById("asirra_KnobsTable").getElementsByTagName("a")[0].title="<fmt:message key="captcha.asirra.a.get.challenge" />";
document.getElementById("asirra_KnobsTable").getElementsByTagName("a")[1].title="<fmt:message key="captcha.asirra.a.whatsthis" />";
document.getElementById("mainForm").style.display="block"; // show form when i18n is done
}
</script>
</head>
<body onload="i18nAsirra()">
<div style="margin:8px">
<p><fmt:message key="captcha.description" /></p>
<form action="<wiki:Link jsp='Captcha.jsp' format='url'/>" method="post" id="mainForm" style="display: none;">
<input type="hidden" value="foo" name="text" />
<input type="hidden" value='<%=request.getParameter("page")%>' name='page'/>
<script type="text/javascript" src="http://challenge.asirra.com/js/AsirraClientSide.js"></script>
<script type="text/javascript">
asirraState.SetEnlargedPosition("right");
// asirraState.SetCellsPerRow(6);
</script>
<br />
<input type="button" value="<fmt:message key="captcha.submit" />" onclick="javascript:Asirra_CheckIfHuman(HumanCheckComplete)" />
</form>
</div>
</body>