首页 > Java > java教程 > 正文

Java验证器

PHPz
发布: 2024-08-30 15:45:08
原创
862 人浏览过

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类的示例

接下来,我们编写 Java 代码来更清楚地理解 Authenticator 类,在下面的示例中,我们创建 Authenticator 类的子类并重写 getPasswordAuthentication() 函数来对某些 URL 执行身份验证,如下 –

示例#1

代码:

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验证器

接下来,我们编写java代码来理解Authenticator类,我们尝试在重写的getPasswordAuthentication()函数中获取所有信息,如下 –

示例#2

代码:

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验证器

上面的代码正在尝试获取与身份验证相关的所有信息。

结论

javaauthenticator类是一个内置的java类,用于处理URL或网络连接认证。正如我们所看到的,这个内置类有十个函数,每个函数都可以用于特定目的。

以上是Java验证器的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板