Java 認証クラスは、ネットワーク接続の認証に使用されます。このクラスは標準の Java クラスです。オーセンティケーター クラスは、特定の URL にアクセスするためにユーザー認証を必要とするアプリケーションで使用されます。オーセンティケーター クラスは、ユーザー名やパスワードなどの資格情報の入力をユーザーに求めることで認証を実行します。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
アプリケーションで認証を実行するには、アプリケーションでいくつかの手順を実行する必要があります。まず、アプリケーション クラスが 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() – パスワードが必要な場合にこの関数が使用されます。すべてのサブクラスは、デフォルトで null を返す getPasswordAuthentication () をオーバーライドする必要があります。
構文 –
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();
次に、Authenticator クラスをより明確に理解するために Java コードを作成します。次の例では、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); } } }
出力:
次に、以下のように、オーバーライドされた getPasswordAuthentication() 関数内のすべての情報を取得しようとする Authenticator クラスを理解する Java コードを作成します –
コード:
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); } } }
出力:
上記のコードは、認証に関連するすべての情報を取得しようとしています。
Java オーセンティケーター クラスは、URL またはネットワーク接続認証を処理するために使用される組み込み Java クラスです。これまで見てきたように、この組み込みクラスには、それぞれ特定の目的に使用できる 10 個の関数があります。
以上がJava認証システムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。