当我跑步时:
spring encrypt totallysecretpassword --key=insanity
线程“主”中的异常java.lang.reflect.InvocationTargetException 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 在org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 在org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 在org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) 造成原因:java.lang.NoSuchMethodError: org.springframework.cloud.cli.command.encrypt.BaseEncryptOptionHandler.option(Ljava / util / Collection; Ljava / lang / String;)Ljoptsimple / OptionSpecBuilder; 在org.springframework.cloud.cli.command.encrypt.BaseEncryptOptionHandler.options(BaseEncryptOptionHandler.java:53) 在org.springframework.boot.cli.command.options.OptionHandler.getParser(OptionHandler.java:68) 在org.springframework.boot.cli.command.options.OptionHandler.run(OptionHandler.java:83) 在org.springframework.boot.cli.command.OptionParsingCommand.run(OptionParsingCommand.java:54) 在org.springframework.boot.cli.command.CommandRunner.run(CommandRunner.java:219) 在org.springframework.boot.cli.command.CommandRunner.runAndHandleErrors(CommandRunner.java:171) 在org.springframework.boot.cli.SpringCli.main(SpringCli.java:63) ...另外8个
我按照这里的说明重新安装了JCE:https://cloud.spring.io/spring-cloud-cli/
基本上,我想要的是: https://blog.novatec-gmbh.de/encrypted-properties-spring/
但是在1.3.2中它是相同的错误,所以我使用了最新版本...但仍然没有成功...我缺少什么?
- 没有在我的Windows框上运行2.0.8的加密,而在ubuntu框上执行该操作时,@ jtim的答案令我感到担忧!
答案 0 :(得分:4)
这是spring-boot-cli的重大变化。只需等待spring-cloud-cli兼容版本的发布(新版本的request)即可。
或者您可以install没有更改的旧版本的spring-boot-cli,例如2.0.8.RELEASE
答案 1 :(得分:0)
我也碰到了这个问题,这就是我所做的,
# Step 1: Download the binaries to install (https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/)
$ wget https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.0.8.RELEASE/spring-boot-cli-2.0.8.RELEASE-bin.tar.gz
# Step 2: Extract the tar.gz
$ tar xvf spring-boot-cli-2.0.8.RELEASE-bin.tar.gz
# Step 3: Enable execute permissions
$ chmod +x spring-2.0.8.RELEASE/bin/spring
# Install Spring Cloud
$ spring install org.springframework.cloud:spring-cloud-cli:2.0.0.RELEASE
# Step 5: Add it to your PATH
$ cd spring-2.0.8.RELEASE/bin
$ echo "PATH=$(pwd):\$PATH" >> .bashrc or .zshrc
这通常适用于Mac和任何基于Linux的系统。我已经在Mac和Linux Mint上亲自尝试过
输出:
$ spring encrypt totallysecretpassword --key=insanity
f5a7944890c871ef58971eeaf123bbc750727b012cce8f7072def5bf71b000fb00089e106775ac0306b5f15b8f17d233
希望这对某人有帮助。
答案 2 :(得分:0)
使用较低版本的Spring boot cli。以下配置对我有用:
Springboot CLI版本:2.1.6.RELEASE
创建系统变量
name: SPRING_HOME
value: C:\Users\zafrullahsyed\Downloads\spring-2.1.6.RELEASE
将bin文件夹添加到系统路径:%SPRING_HOME%\bin
以管理员身份打开CMD,否则不会在spring-2.1.6.RELEASE\lib\ext
文件夹上创建jar
检查Spring --version
Spring CLI v2.1.6.RELEASE
然后安装sping cloud插件:
spring install org.springframework.cloud:spring-cloud-cli:2.1.0.RELEASE
spring encrypt mysecret --key foo
加密值:1c656a1a4617146a7e76d977ca5fa2cfeb0afecc5655677193f53ab43578dd4d
spring decrypt --key foo 1c656a1a4617146a7e76d977ca5fa2cfeb0afecc5655677193f53ab43578dd4d
解密值:
mysecret