Lorsque vous vous connectez au site Web, la plupart du temps, vous soumettez vos informations de connexion via un formulaire.
Mais parfois, une boîte de dialogue de vérification de connexion apparaît par le navigateur, comme le montre la figure ci-dessous, qui est l'authentification de base à l'aide de HTTP.
Jetons un coup d'œil au processus de cette certification:
Étape 1: Le client envoie une demande HTTP au serveur et le serveur vérifie si l'utilisateur s'est connecté et vérifié. Sinon,
Le serveur renverra un 401 Unauthozied au client et ajoutera des informations dans l'en-tête "www-authenticiate" de la réponse.
Comme indiqué dans la figure ci-dessous.
Étape 3: Le serveur élimine le nom d'utilisateur et le mot de passe dans l'en-tête d'autorisation et effectue une vérification. Si la vérification est adoptée, la ressource sera envoyée au client conformément à la demande.
Voici un exemple de code pour Java
Importer java.io.ioException; import java.io.printwriter; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; étend httpsservlet {public void doGet (request httpservletRequest, httpservletResponse réponse) lève ioException {string sessionAuth = (string) request.getSession (). getAttribute ("auth"); if (sessionAuth! = null) {System.out.println ("Ceci est la prochaine étape"); NextStep (demande, réponse); } else {if (! workHeleAuth (request, réponse)) {réponse.setStatus (401); Response.sethEader ("Cache-Control", "No-Store"); réponse.setDateHeader ("expire", 0); Response.sethEader ("www-authenticiate", "royaume de base = /" test / ""); }}} booléen privé boolean wateraRauth (request httpservletRequest, httpservletResponse réponse) lève ioException {string auth = request.getheader ("autorisation"); System.out.println ("AUTH codé dans Base64 est" + getFrombase64 (auth)); if ((auth! = null) && (auth.length ()> 6)) {auth = auth.substring (6, auth.length ()); String decodedAuth = getFrombase64 (auth); System.out.println ("Auth décodé de Base64 est" + DecodedAuth); request.getSession (). SetAttribute ("Auth", DecodedAuth); Retour Vrai; } else {return false; }} chaîne privée getFrombase64 (chaîne s) {if (s == null) return null; Base64DECODER DECODER = NOUVEAU BASE64DECODER (); try {byte [] b = decoder.decodeBuffer (s); retourner la nouvelle chaîne (b); } catch (exception e) {return null; }} public void nextStep (requette httpsservletRequest, réponse httpservletResponse) lève ioException {printwriter pw = réponse.getwriter (); pw.println ("<html> Étape suivante, l'authentification est:" + request.getSession (). getAttribute ("Auth") + "<br>"); pw.println ("<br> </ html>"); } public void doPost (requête HttpServLetRequest, réponse httpservletResponse) lève ioException {doGet (request, réponse); }}Lorsque la demande arrive pour la première fois sur le serveur, le serveur n'a pas d'informations d'authentification et le serveur renvoie un 401 Unauthozied au client.
Après l'authentification, placez les informations d'authentification dans la session, et il n'est pas nécessaire de s'authentifier pendant la période de validité de la session à l'avenir.
Ce qui précède est le contenu complet du code d'instance Java pour l'authentification de base qui vous a été apporté par l'éditeur. J'espère que tout le monde soutiendra Wulin.com plus ~