Задать вопрос
  • Как в GO сравнить два *float64 значения между собой?

    @nurzhannogerbek Автор вопроса
    Спасибо за ответ! Сами условия правильные для ранее описанных задач? Не совсем уверен что правильно описал задачу для YELLOW.
  • Как найти все схожие записи в таблице?

    @nurzhannogerbek Автор вопроса
    zhaar, спасибо за ответ, но что если "правильные" записи у меня не хранятся в отдельной таблице? Есть лишь таблица со всеми записями (в моем случаи таблица questions, которую ранее упоминал в посте). Мне хотелось бы в самом запросе указать этот самый список "правильных" записей.
  • Как найти все схожие записи в таблице?

    @nurzhannogerbek Автор вопроса
    Здравствуйте! Можете свою мысль раскрыть более детально пожалуйста. Вообщем смысл в том, что у меня есть список эталонных вопросов. То есть то как они должны правильно грамматически писаться. В таблице есть такие же вопросы с разными ошибками. Пропустили знаки препинания где-то, разные регистры. Мне нужно найти вхожие предложения.
  • Как найти все схожие записи в таблице?

    @nurzhannogerbek Автор вопроса
    Как делать поиск не по одному предложению как вы предлагаете, а по нескольким? Вам пример не учитывает схожесть. Он учитывает вхождение, если не ошибаюсь. Это не совсем то, что я пытаюсь получить.
  • Как исправить проблему в процедуре по добавлению записей?

    @nurzhannogerbek Автор вопроса
    d-stream, ответ конечно эпичный xD

    Вообщем нужно было указать DISTINCT в SELECT-e.
  • Как исправить проблему в процедуре по добавлению записей?

    @nurzhannogerbek Автор вопроса
    d-stream, единственная проблема которая осталось в данный момент возникает при попытке записи схожие данные. Например:
    CALL creator(
    	'99c89a24-fff2-4cbc-a542-b1e956a352f9',
    	ARRAY['Mark', 'Kate', 'Mark'],
    	ARRAY['NEXT', 'U12', 'NEXT']
    );


    Возникает следующая ошибка:
    SQL Error [21000]: ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time Tip: Ensure that no rows proposed for insertion within the same command have duplicate constrained values.


    Был бы очень благодарен вашему совету/подсказке :)
  • Как исправить проблему в процедуре по добавлению записей?

    @nurzhannogerbek Автор вопроса
    Вообщем разобрался. Нужно было явно указывать:
    WHERE NOT RELATIONSHIP.STATUS
  • Как исправить проблему в процедуре по добавлению записей?

    @nurzhannogerbek Автор вопроса
    Поменял на:
    ***
    DO UPDATE SET TREE_ORGANIZATION_ID = excluded.TREE_ORGANIZATION_ID
    ***


    Теперь ругается на условие where:
    SQL Error [42702]: ERROR: column reference "status" is ambiguous


    Есть ли у вас идеи на счет моих упущений?
  • Как исправить проблему в процедуре по добавлению записей?

    @nurzhannogerbek Автор вопроса
    Здравствуйте! Вообщем забыл название столбца ORGANIZATION_NAME в указанном вами куске кода:

    ***
    SELECT 
       SURVEY_IDENTIFIER SURVEY_ID,
       EMPLOYEE,
       ORGANIZATION_NAME
    FROM UNNEST(ARRAY[EMPLOYEES], ARRAY[ORGANIZATION_NAMES]) u(EMPLOYEE, ORGANIZATION_NAME)
    ***


    При этом уже другая ошибка при вызове процедуры:
    SQL Error [42P01]: ERROR: missing FROM-clause entry for table "u"
    Где: PL/pgSQL function creator(uuid,character varying[],character varying[]) line 3 at SQL statement
  • Как сделать axios Negotiate запросы?

    @nurzhannogerbek Автор вопроса
    Decadal, эту статью я уже видел. Axios запрос у меня такой же как в посте из ссылки. Я отправляю кросс-доменный запрос. Получается со своей локальной машины делаю запрос на URL адрес backend приложения, который крутится на удаленном Linux сервере. Другими словами запрос делается на другой домен.
  • Как сделать axios Negotiate запросы?

    @nurzhannogerbek Автор вопроса
    Decadal, когда я перехожу по прямой ссылке через режим инкогнито данные получилось вытянуть. В статье, которую отправлял вам ранее в комментарии пишется, что в браузерах заложен принцип — получая в ответ на свой Get-запрос HTTP-код 401 «Not Authorized», и в HTTP-заголовках , он, браузер, делает запрос в KDC на получение специального SPNEGO-токена для данного Web-сервиса. Что думаете по этому поводу?
  • Как сделать axios Negotiate запросы?

    @nurzhannogerbek Автор вопроса
    Decadal, Здесь вы видите, что приходит от браузера в заголовке. Браузер как-то формирует Kerberos-закодированный тикет, содержащий данные для авторизации: Authorization:[Negotiate ****]

    Логи:

    map[Upgrade-Insecure-Requests:[1] User-Agent:[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36] Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3] Accept-Encoding:[gzip, deflate] Accept-Language:[ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7] Connection:[keep-alive] Cache-Control:[max-age=0]]
    map[Connection:[keep-alive] Upgrade-Insecure-Requests:[1] User-Agent:[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36] Accept-Language:[ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7] Cache-Control:[max-age=0] Authorization:[Negotiate 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] Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3] Accept-Encoding:[gzip, deflate]]
  • Как сделать axios Negotiate запросы?

    @nurzhannogerbek Автор вопроса
    Александр Козак, Александр, чтобы беседа было предметной выложу логи backend приложения. Здесь вы видите, что приходит от браузера в заголовке. Браузер как-то формирует Negotiate токен.

    map[Upgrade-Insecure-Requests:[1] User-Agent:[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36] Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3] Accept-Encoding:[gzip, deflate] Accept-Language:[ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7] Connection:[keep-alive] Cache-Control:[max-age=0]]
    map[Connection:[keep-alive] Upgrade-Insecure-Requests:[1] User-Agent:[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36] Accept-Language:[ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7] Cache-Control:[max-age=0] Authorization:[Negotiate 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] Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3] Accept-Encoding:[gzip, deflate]]
  • Как сделать axios Negotiate запросы?

    @nurzhannogerbek Автор вопроса
    Decadal, здравствуйте!

    В Golang приложении используется gokrb5 библиотека. В частности был взят этот пример за основу. Ему передается я передавал лишь SNP имя backend приложение, которые было заведено в Active Directory и keytab, который был сформирован так же в Active Directory.

    Из этой теоретической статьи насколько я понимаю делаются несколько запросов и финальный в заголовке содержит SPNEGO token.
  • Как сделать axios Negotiate запросы?

    @nurzhannogerbek Автор вопроса
    Здравствуйте, Александр!

    Вот вся информация при прямом обращении через браузер:
    5cb1aea0cdede013269211.png

    Есть хорошая статья на habr.com c теорией о том как работает SSO-авторизация через Kerberos, но не совсем понятно как это логика применима для axios запросов. Что можете сказать по этому поводу?
  • Как в Golang приложении настроить связь с Kerberos?

    @nurzhannogerbek Автор вопроса
    Здравствуйте!

    Спасибо за ссылку, покопавшись в библиотеке взял за основу этот example файл. Суть всего, что я пытаюсь сделать, как я уже говорил ранее в посте, это при обращении к URL адресу получать информацию о сотруднике. Данные получается выдернуть лишь при физическом обращении к URL адресу через браузер. Через клиентское приложение, через axios (ajax), запросы данные получить не удается. В ответ на клиентском приложении получаю HTTP 401 Unauthorized. Браузер насколько я понимаю формирует Negotiate token, axios (ajax) запрос этого не может. Не поминаю, что делать в данной ситуации. Что вы могли бы посоветовать?
  • Возможно ли по ip или hostname получить username клиента?

    @nurzhannogerbek Автор вопроса
    Mysterion, можете пожалуйста более детально раскрыть мысль в вашем последнем комментарии? Какие сертификаты, какие куки?
  • Возможно ли по ip или hostname получить username клиента?

    @nurzhannogerbek Автор вопроса
    Антон Спирин, то, что вы предлогаете подходит для традиционной авторизации, когда пользователь вбивает login и password, далее создается токен, который сохраняется на стороне клиента. Вообщем для чего я все это делаю. Стоит задача создать сквозную авторизацию. Некий сотрудник компании заходит на корпоративный сайт своей компании и система сразу распознает его. Я предполагал, что можно будет как-то вытащить его username из Active Directory по ip адресу.
  • Возможно ли по ip или hostname получить username клиента?

    @nurzhannogerbek Автор вопроса
    Понятно. По HTTP-запросу username не получить. Вообщем для чего я все это делаю. Стоит задача создать сквозную авторизацию. Некий сотрудник компании заходит на корпоративный сайт своей компании и система сразу распознает его. Я предполагал, что можно будет как-то вытащить его username из Active Directory по ip адресу.