Teamcity 2020.1 – API – 403 error

Если после обновления Teamcity до версии 2020.1 ваши внешние скрипты, приложения получают 403 ошибку, то это связано с обновлением. Jetbrains решили улучшить безопасность.

Временно решить проблему можно добавлением teamcity.csrf.paranoid=false в internal properties. Обратите внимание, что TeamCity рекомендует использовать токены. Отключение “параноидального режима” как постоянное решение неприемлимо.

Переходим на страницу http://YOUR_SERVER/admin/admin.html?item=diagnostics&tab=properties. Нажимаем Edit internal properties и добавляем teamcity.csrf.paranoid=false.

Далее перезапускаем TeamCity Service. Кнопка рестарта через UI доступна на странице http://YOUR_SERVER/admin/admin.html?item=diagnostics

Оставляю ссылку на полный update notes. А далее объяснение почему так произошло. Переводить лень, кто не владеет английским, – учите английский.

Limitation of CORS support for writing operations

TeamCity improves the security of REST API integration mechanisms by introducing CSRF tokens. This change will not affect the behavior of custom integration scripts unless they rely on Cross-Origin Resource Sharing (CORS) in writing operations and the rest.cors.origins internal property is enabled in TeamCity (it is disabled by default).

Previously, CSRF protection was presented in TeamCity with the verification of Origin/Referer headers of HTTP requests. To improve TeamCity CSRF protection, this method has been disabled in favor of a more secure one – CSRF tokens. Since this release, TeamCity stops supporting the CORS mechanism for POST/PUT/DELETE REST API requests. Cross-origin GET requests’ headers are processed as before and still require CORS configuration.

If necessary, you can enforce verification of Origin/Referer headers for writing CORS operations by setting the teamcity.csrf.paranoid=false internal property. Note that this is a transitory and less secure solution: we strongly recommend refactoring your existing requests so they comply with the new security policy and provide a token within a CSRF header or parameter. A CSRF token can be obtained via the GET https://your-server/authenticationTest.html?csrf request and provided via the X-TC-CSRF-Token HTTP header to the write CORS requests.

Ошибка invalid multibyte escape: /^\xFF\xFE/ в Ruby 2.0

Столкнулся с ошибкой

/vpim-rails/lib/vpim/vcard.rb:678: invalid multibyte escape: /^\xFE\xFF/ (SyntaxError) invalid multibyte escape: /^\xFF\xFE/

Лечится очень просто. Открываем файл /vpim-rails/lib/vpim/vcard.rb и добавляем в самое начало строку # encoding: US-ASCII.  У вас должно получиться что то вроде этого:

# encoding: US-ASCII

=begin
Copyright (C) 2008 Sam Roberts

Сохраняем и радуемся, что все теперь работает как надо =)