golang 库 go-restful 中 https basic authentication 基础认证实例
实例如下:
package mainimport ("github.com/emicklei/go-restful""log""net/http""os"
)func main() {wsContainer := restful.NewContainer()wsContainer.Router(restful.CurlyRouter{})ws := new(restful.WebService)ws.Path("/api").Consumes(restful.MIME_JSON).Produces(restful.MIME_JSON) // 可单独设置每一个方法// 最终地址 https://127.0.0.1:7443/api/configws.Route(ws.POST("/config").Filter(basicAuthenticate).To(config))ws.Filter(basicAuthenticate)//basic auth filterwsContainer.Add(ws)log.Printf("start listening on localhost:7443")server := &http.Server{Addr: ":7443", Handler: wsContainer}//证书生成方式参考https://blog.csdn.net/u011411069/article/details/79994716crtPath := "/home/leen/Desktop/certificate.crt"//crt 证书_, err := os.Stat(crtPath)if err != nil {log.Println("crt file not exist!")return}keyPath := "/home/leen/Desktop/certificate.key"//key 证书_, err = os.Stat(crtPath)if err != nil {log.Println("key file not exist!")return}err = server.ListenAndServeTLS(crtPath, keyPath)if err != nil {log.Println(err.Error())}
}//basic auth 验证过滤
func basicAuthenticate(req *restful.Request, resp *restful.Response, chain *restful.FilterChain) {// usr/pwd = admin/adminu, p, ok := req.Request.BasicAuth()if !ok || u != "admin" || p != "admin" {resp.AddHeader("WWW-Authenticate", "Basic realm=Protected Area")resp.WriteErrorString(401, "401: Not Authorized")return}chain.ProcessFilter(req, resp)
}//rest请求处理方法
func config(request *restful.Request, response *restful.Response) {entity := new(model.TestEntity)err := request.ReadEntity(entity)if err != nil {response.WriteEntity(model.NewResult(500, err.Error()))} else {response.WriteEntity(model.NewResult(0, "config successful!"))}
}
golang 库 go-restful 中 https basic authentication 基础认证实例相关推荐
- authentication java_HTTP基本认证(Basic Authentication)的JAVA实例代码
大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证. 下面来看看一看这个认证的工作过程: 第一步:客户端发送h ...
- HTTP基础认证Basic Authentication
HTTP基础认证Basic Authentication Basic Authentication是一种HTTP访问控制方式,用于限制对网站资源的访问.这种方式不需要Cookie和Session,只需 ...
- SpringSecurity中文文档—Authentication— Reading Username/Password
文章目录 Form Login Basic Authentication Digest Authentication Password Storage In-Memory Authentication ...
- Web services 安全实践: 基于 HTTP Basic Authentication 为 Web services 配置传输层安全机制...
转载:http://www.ibm.com/developerworks/cn/webservices/1106_webservicessecurity/ 简介 正如"HTTP Basic ...
- HTTP Basic Authentication验证WCF Data Service
WCF Data Service是OData协议,也是RESTFul Service的一种,上篇文章已经介绍了HTTP Basic Authentication for RESTFul Service ...
- Web应用中基于密码的身份认证机制(表单认证、HTTP认证: Basic、Digest、Mutual)
Web应用中基于密码的身份认证机制 背景概念 认证(Authentication) 会话管理 1 表单认证(Form-Based Authentication) 1.1 介绍 1.2 流程 2 通用的 ...
- Golang 库: 为什么 Golang slog 库不支持 `slog.Fatal` API
Golang 库: 为什么 Golang slog 库不支持 slog.Fatal API 原文链接: https://tangx.in/posts/2023/01/06/why-dont-golan ...
- Golang 从 Json 串中快速取出需要的字段
Golang 从 Json 串中快速取出需要的字段 在 web 编程中很多情况下接口的数据是 json 格式,在我们拿到接口的 json 数据后如何方便地从中提取出需要的字段呢?我们可以自定义一个结构 ...
- 【Golang】关于Go中logrus的用法
一.标准日志库log 在日常开发中,日志是必不可少的功能.虽然有时可以用fmt库输出一些信息,但是灵活性不够.Go 标准库提供了一个日志库log. 1.快速使用 log是 Go 标准库提供的,不需要另 ...
最新文章
- Docker安装weblogic(五)
- 大学计算机html,编程基础(C+VB+HTML)(辅)19级计算机
- 像我这种背景的人跑到微软来干什么?
- 【leetcode】1032. Stream of Characters
- 通过Ajax解析和jQuery写了一个小小的导航条
- java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?
- xshell连接突然报Connection closed by foreign host.
- python xlrd_python读取excel(xlrd)
- 编程体系结构(06):Java面向对象
- Intel 64/x86_64/IA-32/x86处理器 - 指令格式(9) - 64位指令格式(通用格式)
- TensorFlow发布语音识别入门教程,附1GB数据集代码
- 功夫熊猫2观后感,无剧透,放心进
- Android手机投屏后没有声音,安卓手机镜像投屏没有声音解决办法
- 网络请求分析实战篇(01)—— 爬取amazon搜索栏的关联关键词
- 计算机招聘试题选择题,计算机考试题库:计算机基础练习题(39)
- yield方法释放锁吗_java多线程,让步yield
- 关于Amazon AWS —— 免费的午餐不好吃
- C4D演绎中国风设计这波电商BANNER背景素材,高级了
- Axon框架指南 - Baeldung
- Linux--解决Windows和Ubuntu之间的复制粘贴问题