Reputation: 459
I just upgraded my Artifactory OSS installation from the 6.0.1 release to 6.1.0. After restarting the service I was puzzled why the instance was not coming up. Looking at the artifactory.log I found this stacktrace:
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
I found some topics where an upgrade from a pre 5.7.0 version could cause such problems but that did not fit here. I had the 6.0.1 up and running for some months now. Any idea what is causing this issue and how to fix it?
EDIT
It appears that this is related to RTFACT-15580 in JFrog's JIRA-system. But there is not hint of how the badly encrypted data can be revoered. Any ideas? Or anyone who stumbled across the same problem?
Kind regards,
Sebastian
Upvotes: 2
Views: 835
Reputation: 459
Okay.
Here is the solution - thanks to the JFrog support team! Somehow the artifactory installation key located under artifactory/etc/security/artifactory.key became corrupted which means it changed over time. Since artifactory stores all credentials in its configuration files encrypted with this key it was not able to decrypt the credentials. Thus it refused to start.
Solution:
For me removing the encrypted password of the email settings was sufficient.
I hope this helps anyone out having similar problems.
Upvotes: 2