Ad Widget

Collapse

Web scenarios и символ "/"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • anvodola
    Junior Member
    • Apr 2018
    • 6

    #1

    Web scenarios и символ "/"

    Привет.

    При обработке Web scenarios выяснил, что при наличие в ответе от сервера символа "/" он без спроса зачем-то экранируется \ в zabbix. Это не дает мне получить верную переменную (token) для дальнейших действий.

    Вот пример из дебага:

    Code:
      4878:20180411:043524.824 process_httptest() go to URL "https://stage-api.***.com/sso/validate/credentials"
      4878:20180411:043524.971 process_httptest() page.data from https://stage-api.***.com/sso/validate/credentials:'{"success":true,"data":{"member_id":710422,"first_name":"Alex","last_name":"San","level_id":12
    ,"is_active":1,"is_suspended":0,"language_code":"ru","token":"$2y$10$5dWgm\/qYHl\/7ARVM5Nt4deXrONrjocs4q1f2RTIBC4WkvrOXXA7CK"}}'
      4878:20180411:043524.971 In int_in_list() list:'200' value:200
      4878:20180411:043524.971 End of int_in_list():SUCCEED
      4878:20180411:043524.971 In http_process_variables() 2 variables
      4878:20180411:043524.971 In httpmacro_append_pair() pkey:'{password}' pvalue:'xxxx'
      4878:20180411:043524.971 append macro '{password}'='xxxx' in cache
      4878:20180411:043524.971 End of httpmacro_append_pair():SUCCEED
      4878:20180411:043524.971 In httpmacro_append_pair() pkey:'{username}' pvalue:'710422'
      4878:20180411:043524.971 append macro '{username}'='710422' in cache
      4878:20180411:043524.971 End of httpmacro_append_pair():SUCCEED
      4878:20180411:043524.971 End of http_process_variables():SUCCEED
      4878:20180411:043524.971 In http_process_variables() 1 variables
      4878:20180411:043524.971 In httpmacro_append_pair() pkey:'{token}' pvalue:'regex:token":"(.*)"'
      4878:20180411:043524.971 append macro '{token}'='$2y$10$5dWgm\/qYHl\/7ARVM5Nt4deXrONrjocs4q1f2RTIBC4WkvrOXXA7CK' in cache
      4878:20180411:043524.971 End of httpmacro_append_pair():SUCCEED
      4878:20180411:043524.971 End of http_process_variables():SUCCEED
      4878:20180411:043524.971 In process_step_data() rspcode:200 time:0.146322 speed:1510.000000
      4878:20180411:043524.971 query [txnlev:0] [select type,itemid from httpstepitem where httpstepid=34]
      4878:20180411:043524.972 End of process_step_data()
      4878:20180411:043524.972 In substitute_simple_macros() data:'https://stage-login.***.com/?token={username}_{token}'
      4878:20180411:043524.972 In http_substitute_variables() data:'https://stage-login.***.com/?token={username}_{token}'
      4878:20180411:043524.972 End of http_substitute_variables() data:'https://stage-login.***.com/?token=710422_$2y$10$5dWgm\/qYHl\/7ARVM5Nt4deXrONrjocs4q1f2RTIBC4WkvrOXXA7CK'
    Почему это происходит и можно ли это починить?
    Или подскажите, как можно с помощью regex убрать лишние \ ?

    Спасибо.
    Last edited by anvodola; 16-04-2018, 10:41.
  • anvodola
    Junior Member
    • Apr 2018
    • 6

    #2
    Чуть было не обрадовался, наткнувшись на https://www.zabbix.com/forum/zabbix-...kslash-problem. Но это для php 7.0 это уже не действительно. (

    Все-таки это где-то вшито в коде заббикса и непоправимо или есть выход?
    Как вариант, от хитрого regex выражения тоже буду счастлив.

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #3
      в ответе от сервера символа "/" он без спроса зачем-то экранируется \ в zabbix
      К сожалению, этого не видно из процитированного Вами фрагмента лога. Вероятно, бэкслеши съелись движком форума (бывает у него такой глючок).

      Comment

      • anvodola
        Junior Member
        • Apr 2018
        • 6

        #4


        возможно, но у меня отображается нормально. выделил, фрагмент с лишними ""

        p.s. и правда куда-то съелся обратный слеш в этом посте в тексте. значит мониторинг и форум "не любят" его одинаково. (

        click image for larger version  name:	pick.jpg views:	1 size:	73.5 kb id:	357653
        Last edited by anvodola; 23-04-2018, 08:51.

        Comment

        • Kos
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • Aug 2015
          • 3404

          #5
          Кажется, я понял.
          Судя по началу Вашей цитаты, в ответ на HTTPS-запрос Вам возвращается JSON-объект. Но надо иметь в виду, что в JSON-е текстовые строки имеют определённое представление (см. первоисточник, п.9), и там некоторые символы представляются в виде escape-последовательностей. Это относится не только к прямому слэшу, но и, например, к обратному слэшу, символам кавычки, перевода строки, табуляции и некоторых других. Т.е. это не "Zabbix экранирует", а это приходит Вам от сервера, поскольку таков формат JSON.
          А вот как извлечь с получаемой страницы нужное значение, убрав при этом экранирование, - я, честно говоря, не знаю :-(

          Comment

          • anvodola
            Junior Member
            • Apr 2018
            • 6

            #6
            Дело в том, что если запустить curl из командной сроки лишнего, экранирующего слеша нет.
            Почему это не соответствует стандарту - повлиять на это не могу практически.

            Comment

            • Kos
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Aug 2015
              • 3404

              #7
              Originally posted by anvodola
              Дело в том, что если запустить curl из командной сроки лишнего, экранирующего слеша нет.
              Точно-точно нет? Если так, то это повод оформить баг-репорт. Надо только один раз зарегистрироваться на support.zabbix.com (это бесплатно), а также учесть, что писать там надо по-английски.
              Либо, есть есть контракт на техподдержку, то решать через них.

              Comment

              • anvodola
                Junior Member
                • Apr 2018
                • 6

                #8
                Точно. Я бы не стал засорять форум. )
                Зарегистрировался. Буду пробовать там. Спасибо.

                Comment

                Working...