我需要使用 ubuntu 12.04 在新服务器上从 Hudson (3.0.1) 迁移到 Jenkins (1.424.)。我决定安装(使用 apt-get)Jenkins,然后复制配置文件并从磁盘重新加载配置。我将 config.xml 复制到 /var/lib/jenkins,我还从旧安装中复制了 users 文件夹。然后我做了与旧安装相同的设置:“Hudson 自己的用户数据库”作为安全领域,“基于矩阵的安全”作为授权。
然后我从磁盘重新加载配置,现在我无法使用我的用户名登录
“登录信息无效,请重试”
我将用户 jenkins 添加到影子组(以防万一,如此处所建议),但它没有帮助。
我不知道为什么 Jenkins 不想用我的旧登录名/密码登录我,因为每个用户的 config.xml 中都有密码哈希
我可以通过 Web 界面再次创建相同的用户,但是他们太多了。
詹金斯日志:
Sep 9, 2013 4:17:18 PM hudson.security.AuthenticationProcessingFilter2
onUnsuccessfulAuthentication
INFO: Login attempt failed
org.acegisecurity.BadCredentialsException: Bad credentials
at org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:125)
at org.acegisecurity.providers.ProviderManager.doAuthentication(ProviderManager.java:197)
at org.acegisecurity.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:47)
at org.acegisecurity.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java:74)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:252)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:679)