github.com/infraboard/keyauth@v0.8.1/client/interceptor/audit.go (about) 1 package interceptor 2 3 // func SendOperateEvent(req, resp interface{}, hd *event.Header, od *event.OperateEventData) error { 4 // if od == nil { 5 // return nil 6 // } 7 8 // reqd, err := json.Marshal(req) 9 // if err != nil { 10 // return fmt.Errorf("marshal req for event error, %s", err) 11 // } 12 13 // respd, err := json.Marshal(resp) 14 // if err != nil { 15 // return fmt.Errorf("marshal resp for event error, %s", err) 16 // } 17 18 // od.Request = string(reqd) 19 // od.Response = string(respd) 20 // od.Cost = time.Now().UnixMilli() - hd.Time 21 // oe, err := event.NewProtoOperateEvent(od) 22 // if err != nil { 23 // return fmt.Errorf("new operate event error, %s", err) 24 // } 25 // oe.Header = hd 26 27 // if err := bus.Pub(oe); err != nil { 28 // return fmt.Errorf("pub audit log error, %s", err) 29 // } 30 31 // return nil 32 // } 33 34 // func newOperateEventData(e *httpb.Entry, tk *token.Token) *event.OperateEventData { 35 // od := &event.OperateEventData{ 36 // Action: e.GetLableValue("action"), 37 // FeaturePath: e.Path, 38 // ResourceType: e.Resource, 39 // ServiceName: version.ServiceName, 40 // } 41 42 // if tk != nil { 43 // // 补充审计的用户信息 44 // od.Account = tk.Account 45 // od.UserDomain = tk.Domain 46 // od.Session = tk.SessionId 47 // od.UserType = tk.UserType.String() 48 // } 49 // return od 50 // } 51 52 // func newEventHeaderFromHTTP(r *http.Request) *event.Header { 53 // hd := event.NewHeader() 54 // hd.IpAddress = request.GetRemoteIP(r) 55 // hd.UserAgent = r.UserAgent() 56 // hd.RequestId = r.Header.Get("RequestIdHeader") 57 // hd.Source = version.ServiceName 58 // hd.Meta["host"], _ = os.Hostname() 59 // return hd 60 // }