Go实现

在头里设置WWW-Authenticate

返回401

func (webhandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
writer.Header().Set("WWW-Authenticate", `Basic realm="您必须输入用户名和密码"`)
writer.WriteHeader(http.StatusUnauthorized)
}

func (webhandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
auth := request.Header.Get("Authorization") //获取Basic base64加密后的字段
if auth == "" {
writer.Header().Set("WWW-Authenticate", `Basic realm="您必须输入用户名和密码"`)
writer.WriteHeader(http.StatusUnauthorized)
return
}
auth_list := strings.Split(auth, " ")
if len(auth_list) == 2 && auth_list[0] == "Basic"{
res,err := base64.StdEncoding.DecodeString(auth_list[1])
if err == nil && string(res) == "shenyi:123" { //输入的用户名和密码会用:隔开
writer.Write([]byte("<h1>web1</h1>"))
return
}
}
writer.Write([]byte("用户名密码错误"))
}

BasicAuth的更多相关文章

  1. BasicAuth和OAuth

    参考资料 百度百科BasicAuth 维基百科OAuth BasicAuth基本授权 BasicAuth又叫HttpAuth,它非常简单.例如你访问一个页面时,会弹出用户名密码框 它的优点是:简单,只 ...

  2. node中express的中间件之basicAuth

    basicAuth中间件为网站添加身份认证功能.在使用了该中间件后, 用户访问网站时必须输入用户名与密码,在用户输入了用户名与密码并通过验证之后才能访问网站. 当用户输入的用户名和密码符合条件,中间件 ...

  3. .NetCore模拟Postman的BasicAuth生成Authrization

    一.思路 BasicAuth 是一种简单权限,传输UserName=<userName>,Password=<password> 1.用:连接Username,Password ...

  4. [Kong] basic-auth基本认证及ACL鉴权

    目录 basic-auth 1. Route上启用插件 2. 创建一个Consumer 3. 为Consumer创建凭证 4. 验证凭证 ACL 用户鉴权 1. 在route上启用ACL鉴权插件 2. ...

  5. gin使用BasicAuth中间件

    package mainimport ( "github.com/gin-gonic/gin" "net/http")// 模拟一些私人数据var secret ...

  6. BasicAuth memo

    string authInfo = userName + ":" + userPassword; authInfo = Convert.ToBase64String(Encodin ...

  7. Express 教程 01 - 入门教程之经典的Hello World

    目录: 前言 一.Express?纳尼?! 二.开始前的准备工作 三.测试安装之经典的Hello World 四.使用express(1)来生成一个应用程序 五.说明 前言: 本篇文章是建立在Node ...

  8. Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  9. java https单向认证(忽略认证)并支持http基本认证

    https单向认证(忽略认证)并支持http基本认证, 温馨提示 1,jar包要导入对 2,有匿名类编译要注意 3,欢迎提问,拿走不谢!背景知识 Https访问的相关知识中,主要分为单向验证和双向验证 ...

随机推荐

  1. Java 8 Optional 的用法

    认识Optional   Optionals是用于防止 NullPointerException 的漂亮工具.让我们快速了解一下Optionals的工作原理. Optional 是一个简单的容器,其值 ...

  2. Spring Cloud Alibaba学习笔记(21) - Spring Cloud Gateway 自定义全局过滤器

    在前文中,我们介绍了Spring Cloud Gateway内置了一系列的全局过滤器,本文介绍如何自定义全局过滤器. 自定义全局过滤需要实现GlobalFilter 接口,该接口和 GatewayFi ...

  3. 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息

    原文:通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 WPF 框架自己实现了一套触摸机制,但同一窗口只能支持一套触摸机制,于是这会禁用系统的触摸消 ...

  4. MVC-10HTML助手

    HTML帮助器用于修改HTML输出. HTML帮助器 通过MVC,HTML帮助器类似于传统的ASP.NET Web Form控件. 类似ASP.NET中的web form控件,HTML帮助器用于修改H ...

  5. Celery定时任务细讲

    Celery定时任务细讲 一.目录结构 任务所在目录 ├── celery_task # celery包 如果celery_task只是建了普通文件夹__init__可以没有,如果是包一定要有 │ ├ ...

  6. opencv 源码分析 CUDA可分离滤波器设计 ( 发现OpenCV的cuda真TM慢 )

    1. 主函数 void SeparableLinearFilter::apply(InputArray _src, OutputArray _dst, Stream& _stream) { G ...

  7. elasticsearch授权访问

    1.search guard插件 https://www.cnblogs.com/shifu204/p/6376683.html 2.Elasticsearch-http-basic 不支持es5,忽 ...

  8. Matlab单例模式

    classdef SingletonClass < handle methods(Access = private) function obj = SingletonClass() disp(' ...

  9. django路由的反向解析

    什么是路由的反向解析 我们的路由都是一个匹配关系,对应一个处理的视图函数, 如果我们的匹配关系发生了变化,那么与之对应的访问地址(可能前端直接url链接, 也可能是后端的redrict跳转)都需要跟着 ...

  10. error: ~/.vuerc may be outdated. Please delete it and re-run vue-cli in manual mode

    @vue/cli创建项目时报错, 解决: 删除之. 查看vue/cli版本号: npm view @vue/cli versions --json