今天在使用jwt的方式实现spring cloud security的安全验证的时候,出现一个奇怪的异常
Cannot load keys from store: class path resource [kevin_key.jks]
java.io.IOException: Invalid keystore format
从错误堆栈信息中可以看到,是秘匙对文件格式错误。但是并没有对文件进行修改,何来错误一说。使用绝对路径file://${user.home}/work/projects/spring-learning/micro-service/config-service/src/main/resources/kevin_key.jks进行实验,结果成功解析。然后将路径改为编译后target中的文件路径,就报上面的错误。果然是maven编译的时候报错。
知道问题了,解决起来就简单多了,解决方法如下:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.jks</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.jks</include>
</includes>
</resource>
</resources>
</build>
记住更改之后最好的手动编译或者update下。