kubectl proxy 加token 验证
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,kubectl proxy 加token 验证proxy 不支持token加验证,只能再封装了一层代理,进行加验证。开启代理kubectl proxy --port=8089 --address
千家信息网最后更新 2025年01月27日kubectl proxy 加token 验证
kubectl proxy 加token 验证
proxy 不支持token加验证,只能再封装了一层代理,进行加验证。
开启代理
kubectl proxy --port=8089 --address=127.0.0.1 --accept-hosts='^*$' # 后面这个可以去掉,不用允许所有
代码
mkdir go-proxycd go-proxygo mod init go-proxyvim main.gopackage mainimport ( "bytes" "fmt" "github.com/ouqiang/goproxy" "io/ioutil" "log" "net" "net/http" "net/url" "strings" "time")type EventHandler struct{}func (e *EventHandler) Connect(ctx *goproxy.Context, rw http.ResponseWriter) {}func (e *EventHandler) Auth(ctx *goproxy.Context, rw http.ResponseWriter) {}func (e *EventHandler) BeforeRequest(ctx *goproxy.Context) { if clientIP, _, err := net.SplitHostPort(ctx.Req.RemoteAddr); err == nil { if prior, ok := ctx.Req.Header["X-Forwarded-For"]; ok { clientIP = strings.Join(prior, ", ") + ", " + clientIP } ctx.Req.Header.Set("X-Forwarded-For", clientIP) } // 读取Body body, err := ioutil.ReadAll(ctx.Req.Body) if err != nil { // 错误处理 return } if ctx.Req.Header.Get("token") != "1234" { fmt.Println("没有权限,禁止登录") ctx.Abort() return } // Request.Body只能读取一次, 读取后必须再放回去 // Response.Body同理 ctx.Req.Body = ioutil.NopCloser(bytes.NewReader(body))}func (e *EventHandler) BeforeResponse(ctx *goproxy.Context, resp *http.Response, err error) { if err != nil { return } // 修改response}// 设置上级代理func (e *EventHandler) ParentProxy(req *http.Request) (*url.URL, error) { return url.Parse("http://127.0.0.1:8089")}func (e *EventHandler) Finish(ctx *goproxy.Context) { log.Printf("请求结束 URL:%s\n", ctx.Req.URL)}// 记录错误日志func (e *EventHandler) ErrorLog(err error) { log.Println(err)}func main() { proxy := goproxy.New(goproxy.WithDelegate(&EventHandler{})) server := &http.Server{ Addr: ":8000", Handler: proxy, ReadTimeout: 1 * time.Minute, WriteTimeout: 1 * time.Minute, } err := server.ListenAndServe() if err != nil { panic(err) }}
go run main.go
注意
主要修改的地方有2个
if ctx.Req.Header.Get("token") != "1234" { 这里是输入你的token密码 return url.Parse("http://127.0.0.1:8089") 这里是你本地的 proxy 接口
请求
请求头 添加 token : 1234
验证
代理
错误
上级
不用
代码
地方
密码
接口
日志
权限
处理
封装
支持
登录
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全相关学习内容
金融网络安全宣传活动
数据库更新查询操作过程
虚幻五做软件开发卡顿怎么办
细胞分化实验 数据库
软件开发技术架构分类
应用开发和计算机数据库哪个好
mc服务器最大
大学里的数据库是什么意思
智能软件开发资费
魔园软件开发有限公司
网络安全协议拦截
兰州中和软件开发
数据库应用基础网络技术
网络安全技术与实践第3版电子版
金山区使用软件开发口碑推荐
c数据库多事务处理
网络技术与应用论文
安卓客户端与服务器通信
用流量连接不到服务器什么意思
部分服务器无法通过堡垒机远程
网络安全议论文五百字
四川绵阳青少年网络安全
网络安全靠大家征文500字
云南企业erp软件开发
计算机网络技术算理科吗
互联网金融b端金融科技价值
金融软件开发资质
360究竟有没有网络安全
单元测试在软件开发哪个阶段