Как интегрировать аутентификацию 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 ответа:
Попробуйте эту вилку: https://github.com/jerzykrlk/sonar-cas .
Я восстановил поведение оригинального плагина - он должен работать с Sonar 3.7. На данный момент он неофициальный и потребует ручной сборки. Но, возможно, в какой-то момент он снова станет официальным плагином.
Благодаря @psqita мы получили плагин CAS для Sonar, работающий с Saml 1.1. Бизнес-требования гласят, что анонимный доступ запрещен. К сожалению, установка
forceAuthentication
наtrue
отправила нас в бесконечный цикл болезненного перенаправления между CAS и сонаром. Итак, мы выяснили, что Sonar резко изменяет свое поведение таким образом, что он игнорирует все плагины аутентификации.Наше решение: с точки зрения бизнес-требований мы не могли разрешить анонимный доступ. Поэтому мы реализовали еще один
Filter
это перенаправляет условно в CAS. Аутентификация и прочее по-прежнему выполняется плагином. К сожалению, мы до сих пор не знаем, почему возникла эта бесконечная петля, но теперь этого больше не происходит. Ну вот и все, я думаю...Спасибо за Вашу поддержку и счастливых праздников.