У меня есть развернутый configserver, способный шифровать и дешифровать пароли, используя url localhost: 8888 / encrypt и localhost: 8888 / decrypt. Я зашифровал пароль, используемый на сервере конфигурации security.user.password.
Я добавил зашифрованный ключ безопасности для настройки свойств начальной загрузки клиента. Теперь загрузитесь для клиента конфигурации следующим образом.
шифровать:
ключ: caoConfigserverspring
приложение:
имя: xyz
облако:
конфигурации:
URI: http://localhost:8888
включено: правда
отказоустойчивый: правда
имя пользователя: my_user
пароль: '{cipher} 1234567890hjdbcbvnhfg'
сервер:
порт: 8080
Я попытался ввести пароль без одинарных кавычек, и приложение перестало работать с ошибкой анализа Я пробовал с обычным паролем и приложение работает нормально Когда я использую зашифрованное значение при развертывании, я вижу следующую ошибку. Чего мне не хватает при использовании зашифрованного пароля?
2019-05-17 13:03:53 - Ошибка запуска приложения
java.lang.IllegalStateException: невозможно расшифровать: ключ = cloud.config.password
at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.doDecrypt (EnvironmentDecryptApplicationInitializer.java:238) ~ [spring-cloud-context-2.1.0.RELEASE.jar! /: 2.1.0.RELEASE]
at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt (EnvironmentDecryptApplicationInitializer.java:169) ~ [spring-cloud-context-2.1.0.RELEASE.jar! /: 2.1.0.RELEASE]
at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.initialize (EnvironmentDecryptApplicationInitializer.java:96) ~ [spring-cloud-context-2.1.0.RELEASE.jar! /: 2.1.0.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener $ DelegatingEnvironmentDecryptApplicationInitializer.initialize (BootstrapApplicationListener.java:407) ~ [spring-cloud-context-2.1.0.RELEASE.jar! /: 2.1.0.EL
в org.springframework.boot.SpringApplication.applyInitializers (SpringApplication.java:649) [spring-boot-2.1.4.RELEASE.jar! /: 2.1.4.RELEASE]
в org.springframework.boot.SpringApplication.prepareContext (SpringApplication.java:373) [spring-boot-2.1.4.RELEASE.jar! /: 2.1.4.RELEASE]
в org.springframework.boot.SpringApplication.run (SpringApplication.java:314) [spring-boot-2.1.4.RELEASE.jar! /: 2.1.4.RELEASE]
в org.springframework.boot.SpringApplication.run (SpringApplication.java:1260) [spring-boot-2.1.4.RELEASE.jar! /: 2.1.4.RELEASE]
в org.springframework.boot.SpringApplication.run (SpringApplication.java:1248) [spring-boot-2.1.4.RELEASE.jar! /: 2.1.4.RELEASE]
в com.verizon.cao.hcm.shared.security.AuthorizationApplication.main (AuthorizationApplication.java:15) [классы! /: 0.1.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_172]
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_172]
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_172]
at java.lang.reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_172]
в org.springframework.boot.loader.MainMethodRunner.run (MainMethodRunner.java:48) [auth-0.1.0.jar: 0.1.0]
в org.springframework.boot.loader.Launcher.launch (Launcher.java:87) [auth-0.1.0.jar: 0.1.0]
в org.springframework.boot.loader.Launcher.launch (Launcher.java:50) [auth-0.1.0.jar: 0.1.0]
в org.springframework.boot.loader.JarLauncher.main (JarLauncher.java:51) [auth-0.1.0.jar: 0.1.0]
Вызвано: java.lang.IllegalStateException: Невозможно вызвать Cipher из-за плохого заполнения
в org.springframework.security.crypto.encrypt.CipherUtils.doFinal (CipherUtils.java:142) ~ [spring-security-crypto-5.1.5.RELEASE.jar! /: 5.1.5.RELEASE]
at org.springframework.security.crypto.encrypt.AesBytesEncryptor.decrypt (AesBytesEncryptor.java:128) ~ [spring-security-crypto-5.1.5.RELEASE.jar! /: 5.1.5.RELEASE]
at org.springframework.security.crypto.encrypt.HexEncodingTextEncryptor.decrypt (HexEncodingTextEncryptor.java:40) ~ [spring-security-crypto-5.1.5.RELEASE.jar! /: 5.1.5.RELE]at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.doDecrypt (EnvironmentDecryptApplicationInitializer.java:230) ~ [spring-cloud-context-2.1.0.RELEASE.jar! /: 2.1.0.RELEASE]
... 17 общих кадров пропущено
Вызывается: javax.crypto.BadPaddingException: данный последний блок не заполнен должным образом. Такие проблемы могут возникнуть, если во время расшифровки используется плохой ключ.
в com.sun.crypto.provider.CipherCore.doFinal (CipherCore.java:991) ~ [sunjce_provider.jar: 1.8.0_171]
на com.sun.crypto.provider.CipherCore.doFinal (CipherCore.java:847) ~ [sunjce_provider.jar: 1.8.0_171]
на com.sun.crypto.provider.AESCipher.engineDoFinal (AESCipher.java:446) ~ [sunjce_provider.jar: 1.8.0_171]
at javax.crypto.Cipher.doFinal (Cipher.java:2164) ~ [na: 1.8.0_171]
в org.springframework.security.crypto.encrypt.CipherUtils.doFinal (CipherUtils.java:135) ~ [spring-security-crypto-5.1.5.RELEASE.jar! /: 5.1.5.RELEASE]