Files
jx-callback/business/auth2/auth_ctx.go

56 lines
1.1 KiB
Go

package auth2
import (
"net/http"
"strings"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
)
type Context struct {
accessUUID string
w http.ResponseWriter
r *http.Request
// mapData map[interface{}]interface{}
}
func NewContext(w http.ResponseWriter, r *http.Request) (ctx *Context) {
ctx = &Context{
w: w,
r: r,
accessUUID: utils.GetUUID(),
}
globals.SugarLogger.Debugf("NewContext ip:%s", ctx.GetRealRemoteIP())
return ctx
}
func (ctx *Context) GetResponseWriter() http.ResponseWriter {
return ctx.w
}
func (ctx *Context) GetRequest() *http.Request {
return ctx.r
}
func (ctx *Context) GetTrackInfo() string {
return ctx.accessUUID
}
func (ctx *Context) GetRealRemoteIP() (ip string) {
r := ctx.r
if r != nil {
// globals.SugarLogger.Debugf("GetRealRemoteIP header:%s", utils.Format4Output(r.Header, false))
ip = r.Header.Get("X-Forwarded-For")
if ip == "" {
ip = r.Header.Get("X-real-ip")
}
if ip == "" {
ip = strings.Split(r.RemoteAddr, ":")[0]
} else {
ip = strings.Split(ip, ",")[0]
}
}
return ip
}