protocol.go 833 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package sshd
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strings"
  6. "hnyfkj.com.cn/rtu/linux/utils/shell"
  7. )
  8. func extractShellExecuteParams(params json.RawMessage) (shell.ExecuteParams, error) {
  9. if len(params) == 0 {
  10. return shell.ExecuteParams{}, fmt.Errorf("missing params")
  11. }
  12. var p shell.ExecuteParams
  13. if err := json.Unmarshal(params, &p); err != nil {
  14. return shell.ExecuteParams{}, err
  15. }
  16. return p, nil
  17. }
  18. func extractClientID(params json.RawMessage) (string, error) {
  19. if len(params) == 0 {
  20. return "", fmt.Errorf("missing params")
  21. }
  22. var p struct {
  23. ClientID string `json:"client_id"`
  24. }
  25. if err := json.Unmarshal(params, &p); err != nil {
  26. return "", err
  27. }
  28. clientID := strings.TrimSpace(p.ClientID)
  29. if clientID == "" {
  30. return "", fmt.Errorf("clientID is required and cannot be blank")
  31. }
  32. return clientID, nil
  33. }