[JAVA] Versuchen Sie, recaptcha mit eingebettetem Jetty zu implementieren.

Einführung

Ich möchte reCAPTHCA auch in unserem Dienst https://mirm.jp implementieren und habe Probleme, wenn beim Erstellen eines neuen Servers per Post darauf zugegriffen wird. Es ist ein Memorandum, also ziemlich rau.

Implementierung auf HTML

https://www.google.com/recaptcha/admin Bitte registrieren Sie sich zunächst, um den Recaptcha-Schlüssel zu erhalten.

<head>
 。。。。。。

<script src='https://www.google.com/recaptcha/api.js'></script>

。。。。。。
</head>


Bitte in das Formular mischen.

<div class="g-recaptcha" data-callback="clearcall" data-sitekey="Geben Sie hier den Site-Schlüssel ein"></div>
<input type="submit" value="Erstellen!">

Java-seitige Implementierung


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;

import org.json.JSONException;
import org.json.JSONObject;

    public class getJsonFromWeb {

        private static String readAll(Reader rd) throws IOException {
            StringBuilder sb = new StringBuilder();
            int cp;
            while ((cp = rd.read()) != -1) {
                sb.append((char) cp);
            }
            return sb.toString();
        }

        public static JSONObject readJsonFromUrl(String url) {
            try (InputStream is = new URL(url).openStream()) {
                BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
                String jsonText = readAll(rd);
                return new JSONObject(jsonText);
            } catch (IOException | JSONException e1) {
                return new JSONObject("{\"success\": false,\"error-codes\": \"jsondecodeerror\"}");
            }

        }
}


Stellen Sie eine Abfrage. .. ..
//recapthca
                if (recaptchacode == null) {
                    result = create_recaptchaerror;
                    elog("[ReCapError1]"+ip+ua+"[srvid]"+srvid);
                    continue;
                }

                String secretKey = "----------";

                JSONObject jsoned = readJsonFromUrl("https://www.google.com/recaptcha/api/siteverify?secret="+secretKey+"&response="+recaptchacode);

                try {
                    if (!jsoned.getBoolean("success")) {
                        result = create_recaptchaerror;
                        continue;
                    }
                }catch (Exception e){
                    result = create_recaptchaerror;
                    continue;
                }
                //////////////

Zusammenfassung

Es ist ein Memo, aber es sieht so aus.

Referenz

https://liapoc.com/recaptcha.html

https://stackoverflow.com/questions/4308554/simplest-way-to-read-json-from-a-url-in-java

Recommended Posts

Versuchen Sie, recaptcha mit eingebettetem Jetty zu implementieren.
Versuchen Sie, einen anderen Servlet-Container-Steg mit Docker zu verwenden
Versuchen Sie DI mit Micronaut
Versuchen Sie es mit Trailblazer
Probieren Sie WebSocket mit Jooby aus
Versuchen Sie, Yuma in Kinx zu implementieren
Versuchen Sie es mit GloVe mit Deeplearning4j
Versuchen Sie eine DB-Verbindung mit Java
Versuchen Sie gRPC mit Java, Maven
Versuchen Sie, eine WebFlux-Sitzung zu implementieren
Versuchen Sie, XML mit JDOM zu lesen
Versuchen Sie, einen WebFlux-Filter zu implementieren