[JAVA] Essayez d'implémenter recaptcha avec Jetty intégré.

introduction

Je voudrais également implémenter reCAPTHCA dans mon service, https://mirm.jp, et j'ai des problèmes s'il est accédé par courrier lors de la création d'un nouveau serveur. C'est un mémorandum, donc c'est assez difficile.

Implémentation sur html

https://www.google.com/recaptcha/admin Tout d'abord, veuillez vous inscrire pour obtenir la clé de recaptcha.

<head>
 。。。。。。

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

。。。。。。
</head>


Veuillez mélanger le formulaire.

<div class="g-recaptcha" data-callback="clearcall" data-sitekey="Mettez la clé du site ici"></div>
<input type="submit" value="Créer!">

Implémentation côté Java


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\"}");
            }

        }
}


Faites une requête. .. ..
//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;
                }
                //////////////

Résumé

C'est un mémo, mais ça ressemble à ça.

référence

https://liapoc.com/recaptcha.html

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

Recommended Posts

Essayez d'implémenter recaptcha avec Jetty intégré.
Essayez d'utiliser un autre conteneur de servlet Jetty avec Docker
Essayez DI avec Micronaut
Essayez de créer avec Trailblazer
Essayez WebSocket avec jooby
Essayez d'implémenter Yuma dans Kinx
Essayez d'utiliser GloVe avec Deeplearning4j
Essayez la connexion DB avec Java
Essayez gRPC avec Java, Maven
Essayez d'implémenter une session WebFlux
Essayez de lire XML avec JDOM
Essayez d'implémenter un filtre WebFlux