Как интегрировать аутентификацию CAS в SonarQube


Мы хотим интегрировать аутентификацию CAS в Sonar 3.7 LTS. Мы хотим начать работать с устаревшим плагином CAS, который, конечно, не работает. Мы уже сравнивали его с плагином LDAP из здесь , Аутентификатор которого интересно реализует устаревший интерфейс LoginPasswordAuthenticator. Одно из главных отличий заключается в том, что плагин CAS Authenticator реализует Authenticator. Поэтому мы изменили плагин CAS, который он реализует LoginPasswordAuthenticator вместо этого.

Теперь приходит ключ:
В обоих случаях, Аутентификатор, реализующий Authenticator или LoginPasswordAuthenticator, передает ему имя пользователя null. Аутентификация против сервера CAS работает как заклинание, плагин знает имя пользователя, но Sonar спрашивает плагин, знает ли он пользователя с именем null. В результате, когда мы нажимаем на login, мы перенаправляемся на CAS, заполняем форму входа и перенаправляемся обратно на Sonar, все еще не аутентифицированный на самом Sonar.

Мы также рассматривали возможность использования контейнерной аутентификации, но не уверены, что это работает с гидролокатором.

Теперь вопрос (ы):

  • у кого-нибудь есть плагин CAS, работающий с Sonar 3.7? Если да, то как и можете ли вы предоставить исходники/решение/плагин?
  • Есть ли другой путь, кроме предложенных выше?

Еще одно примечание: мы хотим использовать гидролокатор в нашем существующем Tomcat 7, поэтому использование гидролокатора 4-это способ, которым мы на самом деле не хотим идти, потому что команда гидролокатора решила прекратить поддержку войны. Если что-то еще не удается, хотя, используя его боль-в-заднице-но-приемлемое решение.

Спасибо за вашу помощь.
2 2

2 ответа:

Попробуйте эту вилку: https://github.com/jerzykrlk/sonar-cas .

Я восстановил поведение оригинального плагина - он должен работать с Sonar 3.7. На данный момент он неофициальный и потребует ручной сборки. Но, возможно, в какой-то момент он снова станет официальным плагином.

Благодаря @psqita мы получили плагин CAS для Sonar, работающий с Saml 1.1. Бизнес-требования гласят, что анонимный доступ запрещен. К сожалению, установка forceAuthentication на true отправила нас в бесконечный цикл болезненного перенаправления между CAS и сонаром. Итак, мы выяснили, что Sonar резко изменяет свое поведение таким образом, что он игнорирует все плагины аутентификации.

Наше решение: с точки зрения бизнес-требований мы не могли разрешить анонимный доступ. Поэтому мы реализовали еще один Filter это перенаправляет условно в CAS. Аутентификация и прочее по-прежнему выполняется плагином. К сожалению, мы до сих пор не знаем, почему возникла эта бесконечная петля, но теперь этого больше не происходит. Ну вот и все, я думаю...

Спасибо за Вашу поддержку и счастливых праздников.