Die Räder wahnsinnig neu erfinden, Es gibt Zeiten, in denen ich meine eigenen machen muss, weil die Radstandards nicht übereinstimmen.
Möglicherweise kann es beim Erstellen eines Anmeldebildschirms verwendet werden.
Dies ist ein Implementierungsbeispiel für das Micro Framework [Spark Framework](https://qiita.com/tags/Spark Framework).
Verhalten der Basisauthentifizierung-Qiita
Hmmmm ... Erstens befindet sich der http-Server im Status "401" Es scheint, dass Sie den Header wie "WWW-Authenticate: Basic Realm =" Secret Zone "\ r \ n" zurückgeben sollten.
Wenn Sie dann die Authentifizierungsinformationen auf der Browserseite eingeben Weil der Header "Authorization: Basic <Base64-Format von 'ID: PASS'>" vom Client stammt Wenn es dekodiert ist und übereinstimmt, ist die Authentifizierung in Ordnung, und wenn es NG ist, sollte 401 erneut zurückgegeben werden
In der offiziellen Dokumentation finden Sie Ausschnitte, die möglicherweise funktionieren.
Documentation - Spark Framework: An expressive web framework for Kotlin and Java
Es scheint gut, die Authentifizierungsverarbeitung mit einem Filter durchzuführen, der vor der Verarbeitung jeder Anforderung ausgeführt wird.
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");
}
});
Die Standardbibliothek Base64 kann nur verwendet werden, wenn es sich um Java8 handelt. Java7-Leute, benutze die, die du magst ↓ BaseEncoding (Guava: Google Core Libraries for Java 16.0 API) Base64 (Apache Commons Codec 1.11 API)
Recommended Posts