当前位置:  技术问答>java相关

如何通过form认证

    来源: 互联网  发布时间:2017-03-20

    本文导语:  用java程序访问web,怎样才能通过form认证?是不是要写特定的http头信息 | Identify yourself using HTTP Authentification import java.net.*; import java.io.*; public class auth {   URLConnection conn = null;   publi...

用java程序访问web,怎样才能通过form认证?是不是要写特定的http头信息

|
Identify yourself using HTTP Authentification
import java.net.*;
import java.io.*;

public class auth {

  URLConnection conn = null;

  public static void main (String args[]){
    auth a = new auth();
    a.doit(args);
    }

  public void doit(String args[]) {
    /*
    ** args[0]  is the URL protected
    ** args[1]  is the username
    ** args[2]  is the password
    */
    try {
      BufferedReader in = new BufferedReader(
          new InputStreamReader
             (openURLForInput(new URL(/tech-qa-java/args[0]/index.html), args[1], args[2])));
      String line;
      while ((line = in.readLine()) != null) {
          System.out.println(line);
          }
      }
    catch (IOException e) {
      e.printStackTrace();
      }
    }

  public InputStream openURLForInput (URL url, String uname, String pword)
       throws IOException  {
    conn = url.openConnection();
    conn.setDoInput (true);
    conn.setRequestProperty ("Authorization",
       userNamePasswordBase64(uname,pword));
    conn.connect ();
    return conn.getInputStream();
    }

  public String userNamePasswordBase64(String username, String password) {
    return "Basic " + base64Encode (username + ":" + password);
    }

  private final static char base64Array [] = {
      'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
      'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
      'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
      'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
      'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
      'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
      'w', 'x', 'y', 'z', '0', '1', '2', '3',
      '4', '5', '6', '7', '8', '9', '+', '/'
 };

  private static String base64Encode (String string)    {
    String encodedString = "";
    byte bytes [] = string.getBytes ();
    int i = 0;
    int pad = 0;
    while (i = bytes.length) {
         b2 = 0;
         b3 = 0;
         pad = 2;
         }
      else {
         b2 = bytes [i++];
         if (i >= bytes.length) {
            b3 = 0;
            pad = 1;
            }
         else
            b3 = bytes [i++];
         }
      byte c1 = (byte)(b1 >> 2);
      byte c2 = (byte)(((b1 & 0x3)  4));
      byte c3 = (byte)(((b2 & 0xf)  6));
      byte c4 = (byte)(b3 & 0x3f);
      encodedString += base64Array [c1];
      encodedString += base64Array [c2];
      switch (pad) {
       case 0:
         encodedString += base64Array [c3];
         encodedString += base64Array [c4];
         break;
       case 1:
         encodedString += base64Array [c3];
         encodedString += "=";
         break;
       case 2:
         encodedString += "==";
         break;
       }
      }
      return encodedString;
  }


|
1、在web.xml中设置。在JB中有向导可以设置很方便的。

  
    FORM
    
      /login.jsp
      /error.jsp
    
  



2、你的form有特别格式。







    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • applet可以不通过数字签名,通过设置IE直接在本地访问本地文件吗
  • php通过socket_bind()设置IP地址代码示例
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • 通过javascript库JQuery实现页面跳转功能代码
  • 紧急求救!能通过jdbc怎样连接sqlsever 然后通过 for xml 关键字得到xml流吗?
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • 我想我的网站屏蔽掉通过某些网站过来的访问,我想通过htaccess 文件来做,请大家帮帮我。
  • linux下通过crond实现自动执行程序
  • Jbuilder第一次编译说缺包,引入通过!然后把原来引入的注释,又通过!上帝,救我! iis7站长之家
  • 通过docker commit命令保存对docker容器的修改
  • 为什么g++编译通过了,而gcc却编译通过不了???
  • 通过docker run命令运行新的docker镜像
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 通过docker ps命令检查运行中的docker镜像
  • Jbuilder第一次编译说缺包,引入通过!然后把原来引入的注释,又通过!上帝,救我!
  • Session id实现通过Cookie来传输方法及代码参考
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • 通过docker search命令搜索可用docker镜像
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • Python3通过request.urlopen实现Web网页图片下载
  • 工作站Redhat Linux7.2如何通过NT4.0 proxy代理服务器上网,我不能通过其验证!请高手指点思路和方法!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3