recaptcha通过http而不是https进行调用

时间:2012-08-22 16:08:33

标签: java jsp https recaptcha

我在java jsp设置上使用recaptcha。我在jsp中使用以下代码

<%@ page import="net.tanesha.recaptcha.ReCaptcha"%>
<%@ page import="net.tanesha.recaptcha.ReCaptchaFactory"%>


<%
ReCaptcha c = ReCaptchaFactory.newReCaptcha("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXX", false);
out.print(c.createRecaptchaHtml(null, null));
out.flush();
%>

然而,该网站使用https,因此我在IE上收到“仅显示安全内容”消息。

如果我查看源recaptcha已生成以下

<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=XXXXXXXXXXXXXXXXXXXXXXX"></script>

如何强制重新使用https而不是http?

2 个答案:

答案 0 :(得分:8)

查看source code,您需要更改:

ReCaptchaFactory.newReCaptcha(  //...

使用:

ReCaptchaFactory.newSecureReCaptcha(  //...

就是这样!

另见

答案 1 :(得分:0)

您可以通过这种方式使其适用于安全和不安全的内容

ReCaptcha c=null;

if(request.getScheme().equals("https"))
{

     c= ReCaptchaFactory.newSecureReCaptcha(
            Constants.RECATCHA_PUBLIC_KEY,
            Constants.RECATCHA_PRIVATE_KEY, false);
}else{

     c = ReCaptchaFactory.newReCaptcha(
            Constants.RECATCHA_PUBLIC_KEY,
            Constants.RECATCHA_PRIVATE_KEY, false);

}