La classe d'authentification Java est utilisée pour authentifier les connexions réseau. Cette classe est une classe Java standard. La classe Authenticator est utilisée dans les applications qui nécessitent une authentification utilisateur pour accéder à certaines URL. Une classe d'authentification effectue l'authentification en demandant à l'utilisateur des informations d'identification telles que le nom d'utilisateur et le mot de passe.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Pour effectuer l'authentification dans une application, l'application doit effectuer certaines étapes ; Tout d'abord, une classe d'application étend la classe java.net.Authenticator et remplace la fonction getPasswordAuthentication() de la classe java.net.Authenticator dans la sous-classe. Habituellement, cette fonction contient des fonctions getXXX() pour obtenir des informations utilisateur pour l'authentification, comme les noms d'utilisateur et les mots de passe. La fonction getPasswordAuthentication() renvoie la valeur PasswordAuthentication contenant les informations d'identification.
La syntaxe de la classe Authenticator en Java est –
public abstract class Authenticator extends Object { // code of the authenticator class }
Passons en revue la liste complète des fonctions membres de la classe Authenticator qui peuvent être utilisées pour l'authentification.
1. getPasswordAuthentication() – Lorsqu'un mot de passe est requis, cette fonction est utilisée. Toutes les sous-classes doivent remplacer getPasswordAuthentication (), qui renvoie null par défaut.
Syntaxe –
protected PasswordAuthentication getPasswordAuthentication();
2. getRequestingHost() – Cette fonction récupère le nom d'hôte du site demandant l'authentification et renvoie null si aucun nom d'hôte n'est trouvé.
Syntaxe –
protected final String getRequestingHost();
3. getRequestingPort() – Cette fonction est utilisée pour obtenir le numéro de port de la connexion demandeuse.
Syntaxe –
protected final int getRequestingPort();
4. getRequestingPrompt() – Cette fonction est utilisée pour demander le message de chaîne du demandeur.
Syntaxe –
protected final String getRequestingPrompt();
5. getRequestingProtocol() – Cette fonction est utilisée pour obtenir le protocole qui demande la connexion.
Syntaxe –
protected final int getRequestingProtocol();
6. getRequestingScheme() – Cette fonction est utilisée pour supprimer le schéma du site demandeur.
Syntaxe –
protected final String getRequestingScheme();
7. getRequestingSite() – Cette fonction est utilisée pour obtenir InetAddress du site demandeur et renvoie null si aucune InetAddress n'est présente.
Syntaxe –
protected final InetAddress getRequestingSite();
8. getRequestingURL() – Cette fonction est utilisée pour obtenir l'URL du demandeur.
Syntaxe –
protected URL getRequestingURL();
9. setDefault(Authenticator a) – Il est utilisé pour définir l'authentificateur à utiliser par le réseau lorsque le serveur HTTP nécessite une authentification.
Syntaxe –
public static void setDefault(Authenticator a);
10. getRequestorType() – Cette fonction est utilisée pour savoir si le demandeur est un serveur ou un proxy.
Syntaxe –
protected Authenticator.RequestorType getRequestorType();
Ensuite, nous écrivons le code Java pour comprendre plus clairement la classe Authenticator avec l'exemple suivant dans lequel nous créons une sous-classe de la classe Authenticator et remplaçons la fonction getPasswordAuthentication() pour effectuer l'authentification pour certaines URL, comme ci-dessous –
Code :
package p1; import java.io.BufferedReader; import java.io.IOException; import java.net.URL; import java.io.InputStreamReader; import java.net.Authenticator; import java.net.PasswordAuthentication; import java.net.MalformedURLException; class MyAuthenticatorclass extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { String username = "John", password = "pass123"; this.print(); return new PasswordAuthentication(username, password.toCharArray()); } void print() { int hostname = getRequestingPort(); System.out.println("The request Port number :" + hostname); } } public class Demo { public static void main(String[] arg) { String data; try { //create object of authenticator class MyAuthenticatorclass obj =new MyAuthenticatorclass(); Authenticator.setDefault(new MyAuthenticatorclass()); URL url = new URL("https://www.educba.com/"); // reads data from the url in html form BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); System.out.println("The requesting URL is : "+url.getHost()); obj.getPasswordAuthentication() ; while ((data = br.readLine()) != null) { System.out.println(data); } br.close(); } catch (MalformedURLException e) { System.out.println("Malformed URL Exception : " + e); } catch (IOException e) { System.out.println("IO Exception: " + e); } } }
Sortie :
Ensuite, nous écrivons le code Java pour comprendre la classe Authenticator où nous essayons d'obtenir toutes les informations dans la fonction getPasswordAuthentication() remplacée, comme ci-dessous –
Code :
package p1; import java.io.BufferedReader; import java.io.IOException; import java.net.URL; import java.io.InputStreamReader; import java.net.Authenticator; import java.net.InetAddress; import java.net.PasswordAuthentication; import java.net.MalformedURLException; class MyAuthenticatorclass extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { String username = "John", password = "pass123"; this.print(); return new PasswordAuthentication(username, password.toCharArray()); } void print() { // get all information String prom = getRequestingPrompt(); URL url = getRequestingURL(); int prt = getRequestingPort(); String hostname = getRequestingHost(); InetAddress ipaddress = getRequestingSite(); String sh = getRequestingScheme(); RequestorType rt = getRequestorType(); String protocol = getRequestingProtocol(); System.out.println("The prompt is :" + prom+"\nThe hostname is :" + hostname+"\nThe ipaddress is :" + ipaddress+"\nThe port no is :" + prt); System.out.println("The protocol is :" + protocol+"\nThe scheme is :" + sh+"\nThe URL is :" + url+"\nThe Requester Type is :" + rt); } } public class Demo { public static void main(String[] arg) { String data; try { //create object of authenticator class MyAuthenticatorclass obj =new MyAuthenticatorclass(); Authenticator.setDefault(new MyAuthenticatorclass()); URL url = new URL("https://www.educba.com/"); // reads data from the url in html form BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); System.out.println("The requesting URL is : "+url.getHost()); obj.getPasswordAuthentication() ; while ((data = br.readLine()) != null) { System.out.println(data); } br.close(); } catch (MalformedURLException e) { System.out.println("Malformed URL Exception : " + e); } catch (IOException e) { System.out.println("IO Exception: " + e); } } }
Sortie :
Le code ci-dessus tente d'obtenir toutes les informations liées à l'authentification.
La classe Java Authenticator est une classe Java intégrée utilisée pour gérer l'authentification d'URL ou de connexion réseau. Comme nous l'avons vu, cette classe intégrée possède dix fonctions qui peuvent chacune être utilisées dans un but spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!