Я думаю, у каждого найдётся парочка историй о том, как были перепутаны латинская и кириллическая буквы «С». Сколько фиксов было брошено на амбразуру прода. Но недавно я столкнулся с совершенно новым уровнем этой пустяковой проблемы.

Команда получила файл с учётными данными для настройки интеграции с внешней системой. В нём был список логинов и паролей. Я берусь за настройку Apiman'а, ввожу учётные данные для каждого API, проверяю — работает. Настало время вывода на прод, внешняя система была выведена, и мы получаем 401 по всем методам, авторизация не проходит. До этого мы получили письмо о том, что на внешней системе ещё раз провели работы по настройке паролей, и первое, что пришло в голову — наверное, ребята поменяли пароли на другие, а нам забыли прислать. Мы сверяемся — пароли совпадают, пересоздаем пароли — опять та же картина, не работает.

Я прошу DevOps посмотреть логи Apiman'a, для того чтобы понять, что происходит. И тут мы видим в логах такую вещь:

Authorization: – Credentials: CRM?2?

Что за вопросики? А, так это же не ASCII символы! Кто-то, составляя файл с учётными данными, умудрился в логине CRMB2C оставить «В» и вторую «С» русскими символами, что и было мной благополучно скопировано в Apiman. Ну ладно «С», но почему «В»?! А почему оно работало при первичной проверке? Дело в том, что первый раз внешняя система завела креды из этого файла, а второй раз ввела логин руками.

В общем, мораль — когда копируешь что-то из сторонних источников, будь готов, что придется пересоздавать 15 апи в Апимане)) Надеюсь, что никогда не придётся проверять пароли на наличие русских символов!