公司的项目是需要部署到客户的服务器的,那么就需要考虑版本授权的问题了。这里不考虑源码泄露的问题,源码被偷和钱被偷是一样的道理,找证据报警起诉,所以这里不考虑这种情况。
那么我们只需要考虑下面的几点
1.license控制,必须要有license才能使用系统
2.授权码要有期限信息,比如只能使用一个月
3.授权码要有用户数量限制,比如只能100个用户使用
4.要防止jar反编译,被反编译了,等于源码都差不多在人家手里了
版本授权第1步 jar包混淆加密防止反编译
了解过proguard和classfinal,这里使用classfinal
只需要在pom配置
<build>
<finalName>service</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>net.roseboy</groupId>
<artifactId>classfinal-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<password>#</password>
<packages>com.roncoo.education.course.common</packages>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>classFinal</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后启动的方式改为
java -javaagent:service-encrypted.jar -jar service-encrypted.jar
我没有配置密码,每次启动需要配置密码麻烦,没有必要。只要做防混淆。
然后下一步做license控制使用时间就可以了。