前期準備
- springboot項目
- 下載allatori的jar包,具體地址爲 http://www.allatori.com/downloads/Allatori-7.2-Demo.zip ,這個是官方的示例包。我們只需要用到其中的lib。
添加pom依賴
具體如下:
<build>
<plugins>
<!-- Allatori plugin start -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-and-filter-allatori-config</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target</outputDirectory>
<resources>
<resource>
<directory>${basedir}/allatori</directory>
<includes>
<include>allatori.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>run-allatori</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<arguments>
<argument>-Xms128m</argument>
<argument>-Xmx512m</argument>
<argument>-jar</argument>
<argument>${basedir}/lib/allatori.jar</argument>
<argument>${basedir}/target/allatori.xml</argument>
</arguments>
</configuration>
</plugin>
<!-- Allatori plugin end -->
</plugins>
</build>
創建編寫混淆規則文件
在項目的resources目錄下創建一個allatori.xml文件,具體名稱可自行修改,和pom配置保持一致即可。具體內容如下:
<!--allatori配置文件-->
<config>
<!-- 輸入和輸出jar配置,out指向的是加密後的jar -->
<input>
<jar in="xx-api-service-0.0.1-SNAPSHOT.jar" out="obf-xx-api-service-0.0.1-SNAPSHOT.jar"/>
</input>
<!-- 加水印 -->
<watermark key="secure-key-to-extract-watermark" value="developer: xxx"/>
<!-- 需要保留原來類名的配置 -->
<keep-names>
<class access="protected+">
<field access="protected+"/>
<method access="protected+"/>
</class>
<class template="class com.xxx.xxx.*"/>
</keep-names>
<property name="log-file" value="log.xml"/>
<ignore-classes>
<class template="class *springframework*"/>
<class template="class *shardingjdbc*"/>
<class template="class *jni*"/>
<class template="class *alibaba*"/>
<class template="class *persistence*"/>
<class template="class *apache*"/>
<class template="class *mybatis*"/>
<!-- 排除包下的類,可單個到具體,注意此處一定要排除掉springboot項目的啓動類 -->
<class template="class com.apache.*"/>
<class template="class org.apache.http.entity.StringEntity"/>
<class template="class org.apache.cxf.*"/>
</ignore-classes>
</config>
開始混淆加密
- 執行mvn clean,清除掉原先編譯生成的jar文件;
- 執行 mvn compile,這一步很重要,不然不會生成target目錄;
- 複製 src/resources下面的allatori.xml配置文件到target目錄 ;
- 執行 mvn package,然後會生成一個經過混淆的jar。
好了,到此結束。
注意事項
- VO,DO之類的類不要混淆;
- controller裏的入參需要@RequestParam註解指定參數名,否則混淆後會改變