kubectl proxy 加token 验证
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,kubectl proxy 加token 验证proxy 不支持token加验证,只能再封装了一层代理,进行加验证。开启代理kubectl proxy --port=8089 --address
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
网络安全找哪个部门
数据库每月一张表结构
安徽宿州软件开发培训多少钱
吉林省慧达互联网科技有限公司
通州区网络技术服务概况
学习网络安全可以干什么
上海工控软件开发要多少钱
计算机四级数据库资料
球球英雄服务器更换
上海蕉梨网络技术有限公司
软件开发工作量的单位
事务安全数据库
软件开发类毕设ppt
pubg怎么上其他服务器
幼儿园网络安全每日提醒
数据库课程设计考试预约系统
银行级数据库设计
软件开发各组提升方法
关于服务器管理员的文章
网络安全名词
网络安全技术时代背景
数据库保存dag
分布式数据库怎么编写
网络安全市场获客
nebula开源分布式图数据库
数据库前面的加号没有了
嵌入式好还是网络安全
数据库in 函数
java进服务器教程
服务器管理器域名配置