12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package easyophdl
- import (
- "encoding/json"
- "fmt"
- "git.swzry.com/zry/go-zSshRpcServer/server"
- "github.com/tidwall/gjson"
- "golang.org/x/crypto/ssh"
- )
- type EasyOpHdlRequest struct {
- RawRequest zsshrpc_server.ZSshRpcOperationRequest
- isGJsonProc bool
- gjsonResult gjson.Result
- isErrHappend bool
- isJsonProcError bool
- errMsg string
- logger zsshrpc_server.SvrLogFunc
- }
- func (this *EasyOpHdlRequest) GetMethodName() string {
- return zsshrpc_server.GetOperationMethodName(this.RawRequest.Method)
- }
- func (this *EasyOpHdlRequest) GetUserName() string {
- return this.RawRequest.ChannelContext.SessionCtx.ServerConn.User()
- }
- func (this *EasyOpHdlRequest) GetPermissions() *ssh.Permissions {
- return this.RawRequest.ChannelContext.SessionCtx.ServerConn.Permissions
- }
- func (this *EasyOpHdlRequest) WriteLogInfo(msg string) {
- this.writeLog(zsshrpc_server.SvrLogLevel_INFO, msg)
- }
- func (this *EasyOpHdlRequest) WriteLogDebug(msg string) {
- this.writeLog(zsshrpc_server.SvrLogLevel_DEBUG, msg)
- }
- func (this *EasyOpHdlRequest) WriteErrLog(msg string, err error) {
- this.writeLogWithError(zsshrpc_server.SvrLogLevel_WARNING, msg, err)
- }
- func (this *EasyOpHdlRequest) writeLog(level int, msg string) {
- this.writeLogWithError(level, msg, nil)
- }
- func (this *EasyOpHdlRequest) writeLogWithError(level int, msg string, err error) {
- this.logger(level, fmt.Sprint("Backend ", this.RawRequest.URI, " Handler Log: ", msg), err)
- }
- func (this *EasyOpHdlRequest) GetClientVersion() string {
- return string(this.RawRequest.ChannelContext.SessionCtx.ServerConn.ClientVersion())
- }
- func (this *EasyOpHdlRequest) GetRemoteAddr() string {
- return this.RawRequest.ChannelContext.SessionCtx.ServerConn.RemoteAddr().String()
- }
- func (this *EasyOpHdlRequest) ProcGJson() {
- this.gjsonResult = gjson.Parse(this.RawRequest.JSON)
- this.isGJsonProc = true
- }
- func (this *EasyOpHdlRequest) GJsonGet(path string) *gjson.Result {
- if this.isGJsonProc {
- gjo := this.gjsonResult.Get(path)
- return &gjo
- } else {
- this.isErrHappend = true
- this.errMsg = "Do GJson Getting Operation Before ProcGJson."
- this.doErrLog()
- return nil
- }
- }
- func (this *EasyOpHdlRequest) ProcRegularJson(v interface{}) bool {
- err := json.Unmarshal([]byte(this.RawRequest.JSON), v)
- if err != nil {
- this.isErrHappend = true
- this.isJsonProcError = true
- this.errMsg = fmt.Sprint("Failed ProcRegularJson: ", err)
- this.doErrLog()
- return false
- }
- return true
- }
- func (this *EasyOpHdlRequest) doErrLog() {
- if this.isErrHappend {
- this.logger(zsshrpc_server.SvrLogLevel_WARNING,
- fmt.Sprint("Internal Error: ", this.errMsg),
- nil,
- )
- }
- }
|