Réinventer follement les roues, Il y a des moments où je dois fabriquer les miennes parce que les normes de roues ne correspondent pas.
Il peut être possible de l'utiliser lors de la création d'un écran de connexion.
Ceci est un exemple d'implémentation du micro-framework [Spark Framework](https://qiita.com/tags/Spark Framework).
Comportement de l'authentification de base-Qiita
Hmmmm ...
Tout d'abord, le serveur http est dans le statut 401
Il semble que vous devriez renvoyer l'en-tête tel que WWW-Authenticate: Basic realm = \" Secret Zone \ "\ r \ n
.
Ensuite, si vous saisissez les informations d'authentification côté navigateur L'en-tête ʻAuthorization: Basic <Base64 format of'ID: PASS '> `provient du client S'il est décodé et correspond, l'authentification est OK, et si elle est NG, il semble que 401 devrait être renvoyé à nouveau
Consultez la documentation officielle pour voir s'il existe des extraits que vous pouvez utiliser.
Documentation - Spark Framework: An expressive web framework for Kotlin and Java
Il semble bon d'effectuer un traitement d'authentification avec un filtre qui s'exécute avant de traiter chaque requête.
before((request, response) -> {
String reqAuth = "" + request.headers("Authorization");
String basicAuth =
Base64.getEncoder().encodeToString("user1234:password1234".getBytes(StandardCharsets.UTF_8));
if (!reqAuth.replaceAll("Basic\\s", "").equals(basicAuth)) {
System.out.println("Basic Authorization is failed!");
response.header("WWW-Authenticate", "Basic realm=\"Secret Zone\"\r\n");
halt(401, "You are not welcome here");
}
});
La bibliothèque standard Base64 ne peut être utilisée que si elle est Java8. Java7 personnes, utilisez celui que vous aimez ↓ BaseEncoding (Guava: Google Core Libraries for Java 16.0 API) Base64 (Apache Commons Codec 1.11 API)
Recommended Posts