Дженкинс - j_acegi_security_check
Я пытаюсь настроить jenkins, но я не могу заставить аутентификацию работать. Я запускаю jenkins на Tomcat6 на CentOS 6.2. Я разрешаю вход в систему, и все идет нормально, пока я не попытаюсь войти в систему. После предоставления моих учетных данных и нажатия логина tomcat дает мне ошибку:
"Статус HTTP 404 - запрошенный ресурс() недоступен". на http://myserver:8080/jenkins/j_acegi_security_check
По googling я могу найти это:
https://issues.jenkins-ci.org/browse/JENKINS-3761
Две предложенные исправления, которые я нашел:
- Запустите jenkins на tomcat вместо запуска автономной версии - I
Я уже делаю это.
- Редактирование файла: WEB-INF/security/SecurityFilters.groovy - я попытался
редактирование, но я не могу заставить его что-либо изменить
Есть ли что-то, что я мог бы сделать, чтобы сделать эту работу?
Ответы
Ответ 1
С этим боролись целую вечность, убедитесь, что Security Realm установлен, когда вы выбираете метод авторизации в Jenkins.
То есть в разделе "Управление Jenkins" → "Настроить глобальную безопасность" выберите параметр в списке "Область безопасности".
Например:
![enter image description here]()
Ответ 2
Возможно, вы забыли выбрать область безопасности, как указано ниже
https://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup
В случае, если вы заблокировали себя, вы можете вернуть файл Jenkins config.xml, чтобы установить для <useSecurity>true</useSecurity>
значение false
, следуя приведенным здесь инструкциям.
https://wiki.jenkins-ci.org/display/JENKINS/Disable+security
Ответ 3
Как упоминалось на странице с ошибкой:
Ошибка была вызвана правилом пропуска прокси "/jenkins http://localhost:9080/jenkins/"
, который привел к запросу incomming (jenkins) "/jenkins//j_acegi_security_check"
(double//). Таким образом, страница входа в систему была отклонена с помощью 404 (в то время как все остальные страницы, где она была).
Убедитесь, что ваш /jenkins
ProxyPass не заканчивается конечной косой чертой в целевом URL.
Ответ 4
Я столкнулся с той же проблемой на Ubuntu, а также на AIX, где я отчаянно нуждался в ней для работы в производственных настройках. Я даже пробовал веб-серверы Tomcat и Apache, все еще та же проблема.
Наконец, заменив загрузчик классов следующим образом, он работал в автономном режиме:
java -jar jenkins.war --httpPort=79802 --preferredClassLoader=java.net.URLClassLoader &
Кстати, это настройки по умолчанию в стандартном дистрибутиве Jenkins для Ubuntu, откуда я получил ключ.
Вероятно, проблема связана с упаковкой, но на данный момент это решение работает. Проверьте, устраняют ли подобные проблемы.
Ответ 5
У меня был тот же HTTP 404, что и проблема URI "/jenkins/j_acegi_security_check".
И та же проблема, что указана pga выше: Tomcat запускался как пользовательский root.
Это было связано с тем, что у меня была настройка tomcat для автоматического перезапуска, создав стартап tomcat script на "/etc/init.d/".
Исправлена ошибка:
su - tomcatuser - c /cde/pkgs/../tomcat/start.sh
Ответ 6
У меня была та же проблема с 404 на странице "/jenkins/j_acegi_security_check".
Используя Jenkins с Tomcat, после многих попыток решить эту проблему, я пришел к следующему решению: я использую 18080 как порт по умолчанию без перенаправления SSL.
Это связано с перенаправлением, но в этом случае (используя Tomcat) его необходимо изменить в конфигурации tomcat-server:
Посмотрите /conf/server.xml для следующей записи:
<Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Просто комментируя redirectPort, я помог мне:
<Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="20000" />
Ответ 7
URL моей закладки для входа в jenkins был: https://jenkins.foo.com/login?from=%2F
Если защита отключена, и вы нажали на этот URL-адрес с какими-либо учетными данными или пустыми, это вызовет ошибку j_acegi.
Вместо этого используйте https://jenkins.foo.com/, и вы попадете прямо на панель инструментов.
Ответ 8
У меня был тот же HTTP 404, что и в URI "/jenkins/j_acegi_security_check".
В моем случае Дженкинс работал на Tomcat, запущенном пользователем "root". Остановил Tomcat и снова начал его с помощью отдельного пользователя приложения. Проблема решена.
Ответ 9
Увидев проголосовать, я снова сделал шаги на новом сервере.
Было ** символов, и я удалил это.
Отсутствует знак $для tomcat, такой как $TOMCAT_VERSION
(Оба исправлены и работают) (обновлено 28.03.2016)
Отключите защиту, как указано ниже:
http://markunsworth.com/2012/02/13/locked-yourself-out-of-jenkins/
Невозможно войти в систему jenkins и не может отключить параметр входа
Или
Заблокирован при входе в систему с Дженкинсом на Tomcat.
http://xx.xxx.xxx.xxx:8080/jenkins/login?from=/jenkins/
и после заполнения пользовательского пароля, который не был настроен вообще, всегда будет отображаться на этой странице
http://xx.xxx.xxx.xxx:8080/jenkins/j_acegi_security_check
Статус HTTP 404 - описание Запрошенный ресурс недоступен.
У меня был файл .war, установленный в tomcat
Мне потребовалось много времени, чтобы исправить эту проблему.
У меня было много раз полностью удалено Tomcat, Дженкинс все папки .jenkins и т.д. Переустановлены, а что нет...
Снова удалите обоих Tomcat и Jenkins...
Решение - это правильное использование пользователя и группы, давайте посмотрим, как это сделать, выполнив следующие команды один за другим.
Вы вошли в систему с пользователем (например, vimal) с разрешением sudo.
[email protected]:~$ sudo apt-get update
[email protected]:~$ BASE_USER=vimal
[email protected]:~$ sudo chown -Rf $BASE_USER:$BASE_USER /opt/
[email protected]:~$ USER=apache-tomcat
[email protected]:~$ GROUP=myjenkins
[email protected]:~$ TOMCAT_INSTALL_DIR=/opt
[email protected]:~$ TOMCAT_VERSION=apache-tomcat-8.0.23
[email protected]:~$ TOMCAT_URL=http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.zip
Для TOMCAT_URL скопируйте нужную ссылку из архива /src (.zip) сайта загрузки tomcat.
[email protected]:~$ mkdir -p $TOMCAT_INSTALL_DIR
[email protected]:~$ cd $TOMCAT_INSTALL_DIR
[email protected]:~$ wget $TOMCAT_URL
[email protected]:~$ unzip -q $TOMCAT_VERSION.zip
[email protected]:~$ rm $TOMCAT_VERSION.zip
Перед запуском команды ниже вам нужно настроить JAVA_HOME как JAVA_HOME = "/usr/lib/jvm/java-8-oracle/", добавив это в sudo nano/etc/environment
[email protected]:~$ sudo chmod +x $TOMCAT_INSTALL_DIR/$TOMCAT_VERSION/bin/*.sh
[email protected]:~$ $TOMCAT_INSTALL_DIR/$TOMCAT_VERSION/bin/catalina.sh start
[email protected]:~$
[email protected]:~$ cd $TOMCAT_INSTALL_DIR/$TOMCAT_VERSION/webapps/
[email protected]:~$ wget http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war
Подождите пару минут, пока Дженкинс не будет полностью загружен. Требуется память 2 ГБ.
Попробуйте перейти в браузер http://xx.xxx.xxx.xxx:8080/jenkins/, и он будет работать...
Пришел один день, чтобы найти решение.
Ответ 10
Вот как я решил эту проблему:
# service tomcat status
tomcat start/running, process 996
# service tomcat stop
tomcat stop/waiting
# service jenkins status
Jenkins Continuous Integration Server is not running
# service jenkins restart
* Restarting Jenkins Continuous Integration Server jenkins [ OK ]
# service tomcat start
tomcat start/running, process 3839
# service jenkins status
Jenkins Continuous Integration Server is running with the pid 3694
Обновите свой браузер, и Jenkins должен быть запущен.
Надеюсь, это поможет!