这种认证有两种体例:BASIC和DIGEST,BASIC验证要求客户端对用户名和密码进行BASE64编码后传送给处事器。DIGEST的认证体例的细节斗劲复杂,会经由一系列的加密,所以很难被破译。
JAVA供给一个用于启用身份认证的类,可以撑持HTTP和谈中的多个认证体例,这个类是java.net.Authenticator,使用体例如下:
1.package com.xixuyishi;
2.
3.import java.io.BufferedReader;
4.import java.io.InputStream;
5.import java.io.InputStreamReader;
6.import java.net.Authenticator;
7.import java.net.PasswordAuthentication;
8.import java.net.URL;
9.
10.public class RunHttpSpnego {
11.
12. static final String kuser = "username"; // 用户名
13. static final String kpass = "password"; // 密码
14. static class MyAuthenticator extends Authenticator {
16. @Override
17. public PasswordAuthentication getPasswordAuthentication() {
18. return (new PasswordAuthentication(kuser, kpass.toCharArray()));
19. }
20. }
21.
22. public static void main(String[] args) throws Exception {
23. Authenticator.setDefault(new MyAuthenticator());
24. URL url = new URL(args[0]);
25. InputStream ins = url.openConnection().getInputStream();
26. BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
27. String str;
28. while ((str = reader.readLine()) != null)
29. System.out.println(str);
30. }
31.}