Everything was running smoothly on my Jenkins server until I enabled Role-Based Access Control (RBAC) to manage developer permissions.
After adding a new “Developer” user through the Role Strategy Plugin, I noticed that user permissions weren’t working as expected.
To troubleshoot, I deactivated the plugin — and that’s when the real trouble began.
After disabling the RBAC plugin, Jenkins refused to start.
Checking the service status showed this:
systemctl status jenkins.service
× jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled)
Active: failed (Result: exit-code)
Process: 291330 ExecStart=/usr/bin/jenkins (code=exited, status=5)
When I checked the logs (journalctl -u jenkins
), I found this clue:
CannotResolveClassException: com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy
That was the smoking gun 🔫 — Jenkins was still trying to load the Role Strategy plugin, even though I had uninstalled it.
Jenkins stores its configuration in /var/lib/jenkins/config.xml
.
Inside that file, there’s an XML block called <authorizationStrategy>
that defines which security model Jenkins should use.
When the RBAC plugin was installed, this block looked like this:
<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
...
</authorizationStrategy>
So when the plugin was removed, Jenkins couldn’t find the class RoleBasedAuthorizationStrategy
— and failed to start completely.
Always back up your configuration before editing:
cp /var/lib/jenkins/config.xml /var/lib/jenkins/config.xml.bak
Open the file in your favorite editor:
nano /var/lib/jenkins/config.xml
Find and replace the entire authorization block with this safe, built-in strategy:
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>false</denyAnonymousReadAccess>
</authorizationStrategy>
This change tells Jenkins to use the default “full control once logged in” model and ignore the missing plugin.
Reload and restart the service:
systemctl daemon-reload
systemctl restart jenkins
systemctl status jenkins -l
Within a few seconds, Jenkins should be back up and running.
Jenkins’ flexibility is both a blessing and a curse.
While plugins make it incredibly powerful, removing or disabling them can sometimes break things if the configuration still references them.
By resetting the authorizationStrategy
in config.xml
, Jenkins was back online without losing any jobs, builds, or pipelines.
A small XML edit saved hours of rebuild time!
Introduction The 12-Factor App: The DevOps Cheat Code 🤔 If you’ve ever deployed an app…
Ubuntu and CentOS are two popular open-source operating systems that are widely used in the…
Do you know that the cooling system in your computer (Desktop and Laptop) has a…
Quantum computing is a type of computing that uses quantum-mechanical phenomena, perform calculations and solve…
Virtual Private Network (VPN) apps are essential tools that allow you to secure your online…
As a beginner in coding, it can be overwhelming to choose the right platform to…
This website uses cookies.