Artifactory从6.0.1升级到6.1.0后无法启动

标签 artifactory

我刚刚将 Artifactory OSS 安装从 6.0.1 版本升级到 6.1.0。 重新启动服务后,我很困惑为什么实例没有出现。 查看artifactory.log,我发现了这个堆栈跟踪:

2018-08-07 14:44:32,284 [art-init] [INFO ] (o.j.s.c.EncryptionWrapperFactory:33) - createArtifactoryKeyWrapper  EncryptionWrapperBase{ encodingType=ARTIFACTORY_MASTER, topEncrypter=BytesEncrypterBase{ Cipher='DESede',  keyId='31Qpu'}, formatUsed=OldFormat, decrypters=[BytesEncrypterBase{ Cipher='DESede',  keyId='31Qpu'}, BytesEncrypterBase{ Cipher='DESede',  keyId='31Qpu'}]}
2018-08-07 14:44:32,284 [art-init] [ERROR] (o.a.w.s.ArtifactoryContextConfigListener:92) - Application could not be initialized: Given final block not properly padded
java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.configure(ArtifactoryContextConfigListener.java:207)
    at org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.access$200(ArtifactoryContextConfigListener.java:63)
    at org.artifactory.webapp.servlet.ArtifactoryContextConfigListener$1.run(ArtifactoryContextConfigListener.java:88)
Caused by: org.springframework.beans.factory.BeanInitializationException: Failed to initialize bean 'org.artifactory.config.InternalCentralConfigService'.; nested exception is org.jfrog.security.crypto.exception.CryptoRuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded
    at org.artifactory.spring.ArtifactoryApplicationContext.refresh(ArtifactoryApplicationContext.java:253)
    at org.artifactory.spring.ArtifactoryApplicationContext.<init>(ArtifactoryApplicationContext.java:136)
    ... 7 common frames omitted
Caused by: org.jfrog.security.crypto.exception.CryptoRuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded
    at org.jfrog.security.crypto.EncryptionWrapperBase.decryptFallback(EncryptionWrapperBase.java:195)
    at org.jfrog.security.crypto.EncryptionWrapperBase.decrypt(EncryptionWrapperBase.java:129)
    at org.jfrog.security.crypto.EncryptionWrapperBase.decrypt(EncryptionWrapperBase.java:115)
    at org.jfrog.security.crypto.EncryptionWrapperBase.decrypt(EncryptionWrapperBase.java:101)
    at org.jfrog.security.crypto.EncryptionWrapperBase.decryptIfNeeded(EncryptionWrapperBase.java:92)
    at org.jfrog.security.crypto.EncryptionWrapperBase.encryptIfNeeded(EncryptionWrapperBase.java:253)
    at org.artifactory.common.crypto.CryptoHelper.encryptIfNeeded(CryptoHelper.java:73)
    at org.artifactory.layout.EncryptConfigurationInterceptor.getNewPassword(EncryptConfigurationInterceptor.java:181)
    at org.artifactory.layout.EncryptConfigurationInterceptor.encryptOrDecrypt(EncryptConfigurationInterceptor.java:112)
    at org.artifactory.layout.EncryptConfigurationInterceptor.encrypt(EncryptConfigurationInterceptor.java:203)
    at org.artifactory.layout.EncryptConfigurationInterceptor.onBeforeSave(EncryptConfigurationInterceptor.java:193)
    at org.artifactory.config.ConfigurationChangesInterceptorsImpl.onBeforeSave(ConfigurationChangesInterceptorsImpl.java:43)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201)
    at com.sun.proxy.$Proxy95.onBeforeSave(Unknown Source)
    at org.artifactory.config.CentralConfigServiceImpl.preSaveDescriptor(CentralConfigServiceImpl.java:319)
    at org.artifactory.config.CentralConfigServiceImpl.forceSaveDescriptorInternal(CentralConfigServiceImpl.java:377)
    at org.artifactory.config.CentralConfigServiceImpl.initCacheAndGetCurrent(CentralConfigServiceImpl.java:166)
    at org.artifactory.config.CentralConfigServiceImpl.init(CentralConfigServiceImpl.java:147)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.artifactory.storage.fs.lock.aop.LockingAdvice.invoke(LockingAdvice.java:76)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
    at com.sun.proxy.$Proxy96.init(Unknown Source)
    at org.artifactory.spring.ArtifactoryApplicationContext.refresh(ArtifactoryApplicationContext.java:251)
    ... 8 common frames omitted
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:975)
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:833)
    at com.sun.crypto.provider.PKCS12PBECipherCore.implDoFinal(PKCS12PBECipherCore.java:399)
    at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede.engineDoFinal(PKCS12PBECipherCore.java:431)
    at javax.crypto.Cipher.doFinal(Cipher.java:2165)
    at org.jfrog.security.crypto.JFrogCryptoHelper.decryptSymmetric(JFrogCryptoHelper.java:302)
    at org.jfrog.security.crypto.encrypter.DESedeBytesEncrypter.decrypt(DESedeBytesEncrypter.java:43)
    at org.jfrog.security.crypto.EncryptionWrapperBase.decrypt(EncryptionWrapperBase.java:124)
    ... 44 common frames omitted

我发现一些主题从 5.7.0 之前的版本升级可能会导致此类问题,但这不适合这里。我已经安装了 6.0.1 并运行了几个月。知道导致此问题的原因以及如何解决它吗?

编辑

这似乎与 RTFACT-15580 有关在 JFrog 的 JIRA 系统中。但没有任何迹象表明如何恢复加密不良的数据。有任何想法吗?或者有人遇到过同样的问题吗?

亲切的问候,

塞巴斯蒂安

最佳答案

好的。

这是解决方案 - 感谢 JFrog 支持团队! 不知何故,位于artifactory/etc/security/artifactory.key下的artifactory安装 key 已损坏,这意味着它随着时间的推移而发生变化。由于artifactory 将所有凭据存储在使用此 key 加密的配置文件中,因此无法解密凭据。因此它拒绝启动。

解决方案:

对我来说,删除电子邮件设置的加密密码就足够了。

  1. 停止artifactory(如果它确实正在运行)
  2. 将artifactory.config.latest.xml复制到artifactory.config.import.xml
  3. 编辑复制的文件(名称中带有 import 的文件)并清除密码
  4. 启动 Artifactory
  5. 通过用户界面重新输入电子邮件密码

我希望这可以帮助任何遇到类似问题的人。

关于Artifactory从6.0.1升级到6.1.0后无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51727318/

相关文章:

continuous-integration - 如何为多个产品实现Artifactory

gradle - "com.jfrog.artifactory-upload"发生了什么?

gradle - Gradle 6.2.2破坏了我的Bintray发布( Artifactory 名称而不是版本号)

java - 使用 JFrog CLI 部署到 Artifactory 时,有什么方法可以排除某些 Maven Artifact 吗?

java - JFrog Artifactory : Tracking Database Changes in Releasenotes

gradle - Artifactory目录包含点,无法使用Gradle 6.5解决依赖关系

nginx - 状态405- docker - Artifactory

java - Bamboo 和 Artifactory 之间的语义版本控制?

Artifactory REST API : How can I find builds for an artifact?

ssl - artifactory pro registry docker 镜像