在jsp中作HTTP认证的方法

六眼抹身

六眼抹身

2016-01-29 12:14

在jsp中作HTTP认证的方法,在jsp中作HTTP认证的方法
 

    最近研究了jsp中作HTTP认证的问题,它的工作方式如下:

1、server发送一个要求认证代码401和一个头信息WWW-authenticate,激发browser弹出一个认证窗口

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/java/)

2、server取得browser送来的认证头"Authorization",它是加密的了,要用Base64方法解密,取得明文的用户名和密码

3、检查用户名和密码,根据结果传送不同的页面

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/java/)


以下是jsp的片断,你也可以把它做成include文件。和Base64的加解密的class源码。
如有兴趣可与我联系:unixboy@yeah.net

<jsp:useBean id="base64"scope="page"class="Base64"/
<%
if(request.getHeader("Authorization")==null){
   response.setStatus(401);
   response.setHeader("WWW-authenticate","Basic realm="unixboy.com"");
}else{
   String encoded=(request.getHeader("Authorization"));
   String tmp=encoded.substring(6);
   String up=Base64.decode(tmp);
   String user="";
   String password="";
   if(up!=null){
        user=up.substring(0,up.indexOf(":"));
    password=up.substring(up.indexOf(":")+1);
   }
   if(user.equals("unixboy")&&password.equals("123456")){
        //认证成功
   }else{
        //认证失败
   }
}
%


//消息加解密class
public class Base64
{
        /** decode a Base 64 encoded String.
          *<p<h4String to byte conversion</h4
          * This method uses a naive String to byte interpretation, it simply gets each
          * char of the String and calls it a byte.</p
          *<pSince we should be dealing with Base64 encoded Strings that is a reasonable
          * assumption.</p
          *<p<h4End of data</h4
          * We don''t try to stop the converion when we find the"="end of data padding char.
          * We simply add zero bytes to the unencode buffer.</p
        */
        public static String decode(String encoded)
        {
                StringBuffer sb=new StringBuffer();
                int maxturns;
                //work out how long to loop for.
                if(encoded.length()%3==0)
                maxturns=encoded.length();
                else
                maxturns=encoded.length()+(3-(encoded.length()%3));
                //tells us whether to include the char in the unencode
                boolean skip;
                //the unencode buffer
                byte[] unenc=new byte[4];
   &n

展开更多 50%)
分享

猜你喜欢

在jsp中作HTTP认证的方法

Java JAVA基础
在jsp中作HTTP认证的方法

在ASP中操作HTTP报头方法分析

ASP
在ASP中操作HTTP报头方法分析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

使用PHP模拟HTTP认证

PHP
使用PHP模拟HTTP认证

在HTTP请求中添加特殊字符导致暴露JSP源代码文件

Java JAVA基础
在HTTP请求中添加特殊字符导致暴露JSP源代码文件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在VC中WININET如何使用HTTP的POST方法

编程语言 网络编程
在VC中WININET如何使用HTTP的POST方法

javamail在jsp中调用

Java JAVA基础
javamail在jsp中调用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

巧用CSS制作树状目录

巧用CSS制作树状目录

JSP彩色验证码

JSP彩色验证码
下拉加载更多内容 ↓