web-dev-qa-db-fra.com

Jenkins: Accès refusé après avoir activé la sécurité mondiale. Comment revenir?

Besoin d'aide pour comprendre celui-ci. Comment puis-je résoudre ce problème? Je pense que j'ai activé la sécurité globale et j'ai vu cette erreur immédiatement.

(en accédant à localhost: 8080 j'obtiens ce qui suit ...)

A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened.

Stack trace
hudson.security.AccessDeniedException2: anonymous is missing the Overall/Read permission
    at hudson.security.ACL.checkPermission(ACL.Java:54)
    at hudson.model.Node.checkPermission(Node.Java:418)
    at jenkins.model.Jenkins.getTarget(Jenkins.Java:3658)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:656)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:858)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:631)
    at org.kohsuke.stapler.Stapler.service(Stapler.Java:225)
    at javax.servlet.http.HttpServlet.service(HttpServlet.Java:848)
    at org.Eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.Java:686)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1494)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.Java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.Java:88)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.Java:48)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:84)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.Java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.Java:164)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.Java:46)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.Java:81)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1474)
    at org.Eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.Java:499)
    at org.Eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.Java:137)
    at org.Eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.Java:533)
    at org.Eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.Java:231)
    at org.Eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.Java:1086)
    at org.Eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.Java:428)
    at org.Eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.Java:193)
    at org.Eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.Java:1020)
    at org.Eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.Java:135)
    at org.Eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.Java:116)
    at org.Eclipse.jetty.server.Server.handle(Server.Java:370)
    at org.Eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.Java:489)
    at org.Eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.Java:949)
    at org.Eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.Java:1011)
    at org.Eclipse.jetty.http.HttpParser.parseNext(HttpParser.Java:644)
    at org.Eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.Java:235)
    at org.Eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.Java:82)
    at org.Eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.Java:668)
    at org.Eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.Java:52)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.Java:77)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:895)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:918)
    at Java.lang.Thread.run(Thread.Java:695)
14
serverFaulter

modifiez le fichier config.xml et remplacez les deux balises xml suivantes par la version ci-dessous. Redémarrez ensuite votre serveur.

  <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
  <securityRealm class="hudson.security.SecurityRealm$None"/>

Attention, vos balises existantes s'étendent probablement sur plusieurs lignes chacune.

14
Peter Schuetze

Vous obtenez cette erreur car vous avez activé la sécurité mais n'avez aucun utilisateur avec des autorisations. Pour résoudre ce problème, modifiez d'abord config.xml et définissez useSecurity sur false

Je suppose que vous souhaitez utiliser l'authentification locale (une base de données locale d'utilisateurs) plutôt qu'une base de données externe (c'est-à-dire LDAP). Suivez les étapes ci-dessous tirées de Jenkins Documentation .

  1. Accédez à l'écran Configurer la sécurité globale ( http: // server/jenkins/configureSecurity / ) et choisissez "activer la sécurité". Une autre URL à essayer est http: // serveur: 8080/configureSecurity .
  2. Sélectionnez "la propre base de données utilisateur de Jenkins" comme domaine de sécurité
  3. Cochez la case "Autoriser les utilisateurs à s'inscrire"
  4. Sélectionnez "Sécurité basée sur une matrice" comme autorisation
  5. Accorder à un utilisateur anonyme l'accès en lecture
  6. Dans la zone de texte sous le tableau, saisissez votre nom d'utilisateur (vous le créerez plus tard) et cliquez sur "ajouter"
  7. Donnez-vous un accès complet en vérifiant toute la ligne pour votre nom d'utilisateur
  8. Faites défiler jusqu'en bas, cliquez sur "enregistrer"

Testé avec la version 1.566.


Je suggère de revenir sur les changements suggérés dans la réponse acceptée car cela est susceptible d'affecter les étapes ci-dessus.

11
amertkara

Correction à deux lignes (exécutée sur le serveur):

Sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
Sudo /etc/init.d/jenkins restart

Remarque: L'autorisation Sudo est requise ou s'exécute en tant que root.

Connectez-vous ensuite à Jenkins comme d'habitude et reconfigurez à nouveau la sécurité.

2
kenorb

Sous Windows: lorsque j'ai activé le LDAP sous Sécurité globale, j'ai également perdu mon administrateur. avec une erreur comme "Accès refusé il manque les fenêtres jenkins d'autorisation globale/lecture".

Dans ce cas, veuillez conserver l'instance existante, faire installer un nouveau jenkins sur une autre machine ou machine virtuelle. Copiez le config.xml de Jenkins_Home et remplacez-le par config.xml de votre répertoire Jenkin_Home. Pendant cette opération, assurez-vous que le service Jenkins est arrêté. une fois remplacé, démarrez l'instance et VOILA.

0
user3346620

Problème similaire auquel j'ai été confronté mais avec GitHub OAuth, grâce à la réponse convenue ici, mon problème et ma solution expliqués ici

0
sandejai