jenkins ProjectMatrixAuthorizationStrategy的CannotResolveClassException

f5emj3cl  于 2023-10-17  发布在  Jenkins
关注(0)|答案(5)|浏览(89)

我试图通过从旧机器上备份来在新机器上恢复Jenkins。我从旧机器上替换了新机器的jenkins主目录。当我启动Jenkins时,它给了我这个错误。

Caused: java.io.IOException: Unable to read /var/lib/jenkins/config.xml

还有

Caused: hudson.util.HudsonFailedToLoad
Caused: org.jvnet.hudson.reactor.ReactorException

调试信息为-调试信息-

message             : hudson.security.ProjectMatrixAuthorizationStrategy
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : hudson.security.ProjectMatrixAuthorizationStrategy
class               : hudson.model.Hudson
required-type       : hudson.model.Hudson
converter-type      : hudson.util.RobustReflectionConverter
path                : /hudson/authorizationStrategy
line number         : 11
version             : not available
-------------------------------

这就是我的config.xml的样子

<useSecurity>true</useSecurity>
  <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Hudson.Administer:visha</permission>
  </authorizationStrategy>

有人能帮帮忙吗

wkftcu5l

wkftcu5l1#

这通常发生在提供授权策略的插件未安装或未启用时。
确保matrix-auth插件已安装且未禁用($JENKINS_HOME/plugins/中没有matrix-auth.jpi.disabled文件(或类似文件))。

fxnxkyjh

fxnxkyjh2#

如果插件的新版本与Jenkins的旧版本不兼容,可能会发生这种情况。建议将Jenkins升级到最新版本。
我是这么做的

ssh jenkins "cd /tmp; wget https://updates.jenkins-ci.org/latest/jenkins.war"
ssh jenkins "cp /usr/share/jenkins/jenkins.war /tmp/jenkins.war.previous.version"
ssh jenkins "sudo systemctl status jenkins"
ssh jenkins "sudo cp /tmp/jenkins.war /usr/share/jenkins/"
ssh jenkins "sudo systemctl restart jenkins"
6mzjoqzu

6mzjoqzu3#

如果你因为这个错误而无法登录,你可以在jenkins配置文件/config. xml中禁用安全性。搜索<useSecurity>true</useSecurity>并将值更改为false。然后从命令行重新启动jenkins,你应该能够登录并按照其他答案中的建议更改插件/认证配置。

fzsnzjdm

fzsnzjdm4#

通常,当Jenkins版本和插件版本之间不匹配时,会出现此错误。
最好的解决方案是始终保持更新的Jenkins和插件,或者根据Jenkins版本安装适当版本的Jenkins。
对于centos,Redhat,amazon Linux,请按照以下步骤操作。

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum update Jenkins.

对于ubuntu机器,你可以按照hit3k给出的步骤操作。

cd /tmp; wget https://updates.jenkins-ci.org/latest/jenkins.war
cp /usr/share/jenkins/jenkins.war /tmp/jenkins.war.previous.version
sudo systemctl status jenkins
sudo cp /tmp/jenkins.war /usr/share/jenkins/
sudo systemctl restart jenkins
5m1hhzi4

5m1hhzi45#

保留var/lib/jenkins/config.xml -> confg.xml.backup的备份
comment this line authorizationStrategy from soft.xml
sudo systemctl stop jenkins
sudo systemctl restart jenkins
打开网页并更新所有插件
稍后从备份文件复制上述权限你曾经评论过什么,并重新启动Jenkins你应该能够登录

相关问题