前期准备
- 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注解指定参数名,否则混淆后会改变
来源:oschina
链接:https://my.oschina.net/malq/blog/3168094