boot不能加載keystore文件

boot工程不能加載.keystore文件(can not load .keystore)

問題描述

在使用JWK方式搭建授權服務器的時候,因爲採用的是非對稱加密方式,私鑰用來加密,公鑰用來解密達到簽名的效果。通過下面方式生成

keytool -genkey 
		-alias askey 
		-keyalg RSA 
		-keysize 1024 
		-keystore e:/auth.keystore 
		-validity 4000

說明:

  • -alia: 指定別名
  • -keyalg: 指定加密方式
  • -keystore: 指定生成文件名稱
  • -validity: 指定有效期,單位天

auth.keystore文件放入src/main/resources目錄下

但是在工程啓動的時候卻報can not load .keystore的異常

問題分析

明明是加入到時類路徑,但卻沒有加載,於是到編譯生成的target\class去找auth.keystore文件,發現確實沒有這個文件,那麼就是在編譯的時候將這個auth.keystore文件排除了。但是工程的pom文件插件中只有 spring-boot-maven-plugin,難道是這個插件過濾了嗎

注意auth.keystore文件是二進制文件,應該是這個插件將這個過濾了

解決方案

引入maven-resources-plugin插件:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
</plugin>

然後加入:


 <build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>*.keystore</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <includes>
                <include>*.keystore</include>
            </includes>
        </resource>
    </resources>
</build>

good luck!

發佈了76 篇原創文章 · 獲贊 68 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章