美文网首页
www-authenticate认证

www-authenticate认证

作者: SingleException | 来源:发表于2017-11-15 11:56 被阅读0次

7###实例代码

package cn.demo;

import java.io.IOException;
import java.io.Serializable;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;


public class ToolsFilter implements Filter, Serializable {

    private String username;
    private String password;
    
    private static final long serialVersionUID = 1L;

    @Override
    public void destroy() {
        
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse resp = (HttpServletResponse) response;
        resp.setContentType("text/html; charset=utf-8");
        String authValue = req.getHeader("Authorization");
        if(authValue!=null){
            int sepeIndex = authValue.toUpperCase().indexOf("BASIC ");
            String b64UserAndPwd = authValue.substring(sepeIndex + "BASIC ".length());
            String[] ss =new String(Base64.decode(b64UserAndPwd)).split(":"); 
            String name=ss[0];
            String word=ss[1];
            if(username.equals(name)&&password.equals(word)){
                chain.doFilter(request, response);
                return;
            }
        }
        resp.setStatus(401);
        resp.addHeader("WWW-Authenticate", "Basic realm=管理工具控制台登录");
        String errMsg = "<center><font size=2><b>登录失败,请检查用户名和口令。</b></font></center>";
        resp.getWriter().println(errMsg);
    }

    @Override
    public void init(FilterConfig config) throws ServletException {
         username=config.getInitParameter("ADMIN_NAME");
         password=config.getInitParameter("ADMIN_PASSWD");
         
    }

}

web.xml配置

<filter>
        <filter-name>tools</filter-name>
        <filter-class>cn.demo.ToolsFilter</filter-class>
        <init-param>
            <param-name>ADMIN_NAME</param-name>
            <param-value>admin</param-value>
        </init-param>
        <init-param>
            <param-name>ADMIN_PASSWD</param-name>
            <param-value>admin</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>tools</filter-name>
        <url-pattern>/*</url-pattern>
        <!-- 没有配置dispatcher就是默认request方式的 -->
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

相关文章

  • www-authenticate认证

    7###实例代码 web.xml配置

  • HTTP授权验证

    HTTP认证框架 服务器端返回401状态码,告诉客户端需要验证信息。WWW-Authenticate:

  • httpd常用配置:基于用户的访问控制

    基于用户的访问控制 认证质询: www-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端...

  • HTTP中的认证

    一、认证方式 BASIC认证(基本认证) DIGEST认证(摘要认证) SSL客户端认证 ForBase认证(基于...

  • 阿里云大数据ACA笔记1:认证体系

    认证体系 阿里云认证行业认证专项认证 阿里云认证等级 AssociateProfessorExpert 行业认证 ...

  • 认证

    基本权限认证分为OAuth认证,摘要认证和基本认证,证书认证,表单认证 OAuth 认证流程详解: 摘抄自:htt...

  • 做微博需要做的事情

    一、基础资料 二、认证 认证分为:身份认证、兴趣认证、自媒体认证、金V认证、超话认证、故事红人认证。 3、发文 4...

  • Http与Https认证

    作者:烨竹 HTTP的认证方式 BASIC 认证(基本认证)DIGEST 认证(摘要认证)SSL 客户端认证For...

  • 抖音怎么官方认证,抖音怎么申请官方认证

    抖音怎么官方认证,抖音怎么申请官方认证? 官方认证 1、官方认证包括三种,分别是:个人认证、企业认证、机构认证; ...

  • Apache用户认证、域名跳转、Apache访问日志

    Apache用户认证 针对目录认证 用户认证 文件认证文件认证 域名跳转 域名跳转 Apache访问日志 Apac...

网友评论

      本文标题:www-authenticate认证

      本文链接:https://www.haomeiwen.com/subject/kysfvxtx.html