Java 驗證器類別用於驗證網路連線。該類別是一個標準的 Java 類別。 Authenticator 類別用於需要使用者驗證才能存取某些 URL 的應用程式。身份驗證器類別透過提示使用者輸入使用者名稱和密碼等憑證資訊來執行身份驗證。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
要在應用程式中執行身份驗證,應用程式需要執行一些步驟;首先,應用程式類別擴展 java.net.Authenticator 類,並重寫子類別中 java.net.Authenticator 類別的 getPasswordAuthentication() 函數。通常,函數包含 getXXX() 函數來獲取用於身份驗證的使用者信息,例如使用者名稱和密碼。 getPasswordAuthentication() 函數傳回包含憑證資訊的 PasswordAuthentication 值。
Java中Authenticator類別的語法是-
public abstract class Authenticator extends Object { // code of the authenticator class }
讓我們來看看可用於身份驗證的 Authenticator 類別成員函數的完整清單。
1。 getPasswordAuthentication() – 當需要密碼時,使用此函數。所有子類別都應該重寫 getPasswordAuthentication(),預設回傳 null。
文法 –
protected PasswordAuthentication getPasswordAuthentication();
2。 getRequestingHost() – 此函數會擷取請求驗證的網站的主機名,如果找不到主機名,則傳回 null。
文法 –
protected final String getRequestingHost();
3。 getRequestingPort() – 此函數用於取得請求連線的連接埠號碼。
文法 –
protected final int getRequestingPort();
4。 getRequestingPrompt() –此函數用於提示請求者的字串訊息。
文法 –
protected final String getRequestingPrompt();
5。 getRequestingProtocol() – 此函數用於取得請求連線的協定。
文法 –
protected final int getRequestingProtocol();
6。 getRequestingScheme() – 此函數用於刪除請求者網站的方案。
文法 –
protected final String getRequestingScheme();
7。 getRequestingSite() – 此函數用於取得請求網站的 InetAddress,如果不存在 InetAddress,則傳回 null。
文法 –
protected final InetAddress getRequestingSite();
8。 getRequestingURL() – 此函式用於取得請求者的 URL。
文法 –
protected URL getRequestingURL();
9。 setDefault(Authenticator a) – 用於設定 HTTP 伺服器需要驗證時聯網所使用的驗證器。
文法 –
public static void setDefault(Authenticator a);
10。 getRequestorType() – 此函式用於取得請求者是伺服器還是代理程式。
文法 –
protected Authenticator.RequestorType getRequestorType();
接下來,我們編寫Java 程式碼來更清楚地理解Authenticator 類,在下面的範例中,我們建立Authenticator 類別的子類別並重寫getPasswordAuthentication() 函數來對某些URL 執行身份驗證,如下–
代碼:
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); } } }
輸出:
接下來,我們編寫java程式碼來理解Authenticator類,我們嘗試在重寫的getPasswordAuthentication()函數中獲取所有信息,如下 –
代碼:
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); } } }
輸出:
上面的程式碼正在嘗試取得與身份驗證相關的所有資訊。
javaauthenticator類別是一個內建的java類,用來處理URL或網路連線認證。正如我們所看到的,這個內建類別有十個函數,每個函數都可以用於特定目的。
以上是Java驗證器的詳細內容。更多資訊請關注PHP中文網其他相關文章!