有的时候,客户会提出这样的需求,他们的应用能不能当产品一样的出售呀,如果能够保证每一个买家有一个唯一的限制的话,这将是一个不错的想法.
为了能够达到这个目的,我就想了一个很弱智的实现方案.就是在应用启动时加入一些参数,并做一个检验,如果检验失败后就启动失败,这样的话,这个应用就不能正常使用.
好了.就按照这个思路来做一个实现,然后再做扩展.因为我们使用Spring的MVC框架,我就想把它加载到Spring的启动配置文件当中.实现如下,一共有三个个文件,一个JAVA文件,一个是加入到Spring配置文件当中的片段.另外是一个Licence.properites文件.
Java文件:
public class LicenceManager {
private final int MAX_USER = 10;
private String username = "";//用户名
private String organization = "";//公司名
private String licence;//生成的md5码
private boolean valid;
/**
* 当然,如果你有严格的限制的话,你可以加入网卡的唯一码,
* 或者更牛B的限制手段!
**/
@Resource
private UserDAO userDAO;
//注入完成之后需要执行的方法上,以执行任何初始化
@PostConstruct
public void validate() {
String calcLicence = DigestUtils.md5Hex(username + organization);
if (calcLicence.equals(licence))
valid = true;
}
public LicenceManager() {
}
//当然也可以加入对最多用户的限制
public boolean checkLicence() {
if (valid || userDAO.getCountAll() < MAX_USER)
return true;
return false;
}
public void setUsername(String username) {
this.username = username;
}
public void setOrganization(String organization) {
this.organization = organization;
}
public void setLicence(String licence) {
this.licence = licence;
}
public boolean isValid() {
return valid;
}
}
Spring的配置文件:
<bean id="licenceManager" class="com.corticon.dialogs.designer.licence.LicenceManager">
<property name="username" value="${licence.username}"/>
<property name="organization" value="${licence.organization}"/>
<property name="licence" value="${licence.licence}"/>
</bean>
<context:property-placeholder location="classpath:Licence.properties" />
另外Licence.properites示例如下:
licence.username=foobar
licence.organization=foobar.com
licence.licence=401303938298f18f397e6b0125159927
分享到:
相关推荐
请确保JAVA_HOME设置正确,如C:\Program Files\Java\JDK(注意最后没有\) 请按以下步骤运行此演示程序 第一步,运行run.bat部署演示环境 第二步,执行命令"java -jar 50194.jar"运行此演示程序,效果如附图1,2所示 ...
软件Licence应用实例,主要实现软件客户端授权使用,使用期限限制等。 开发语言:C# 开发工具:.NET6.0 涉及技术:电脑硬件信息获取,非对称加密,文件读写等。 具体可参考相关博文
.NET软件Licence应用实例 实例说明 开发技术:C# 开发工具:Visual Studio 2022 开发环境:.Net 6.0 使用说明 客户端测试工具,获取电脑信息 发送到管理员,用Licence生成工具,生成Licence 验证成功,正常使用;...
C#3种软件licence开发源代码
开发者可以使用这些许可证文件来激活和限制他们所开发的GIS应用程序的功能。 ArcGIS Engine 9.2的许可证配置文件("ArcGIS 92 ecps.rar")可能包含了不同级别的许可证,例如基础版、标准版或高级版,每种版本支持的...
Quartus最全licence,支持quartus所有功能。测试可以支持17.1。
ADS1.2 licence 绝对可用
本篇文章将详细解读一个名为"licence-reco.zip"的实习大作业,它涵盖了Pyqt5界面编程、车牌识别以及TCP通信等核心知识点,通过这个项目,我们可以深入理解这些技术的实际应用。 首先,Pyqt5是一种广泛使用的Python...
vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4...
1. 下载并解压:首先,你需要下载名为“ORCAD_10.3_Licence生成程序”的压缩包文件,解压后获取到生成器程序。 2. 运行程序:双击运行生成器,按照界面提示进行操作。通常,你需要提供一些必要的信息,如机器码(这...
微信硬件平台设备信息获取软件,输入AppID/Appsecret/产品编码,点击获取信息即可获取Access_token Deviceid Licence信息。 本软件不会获取个人任何信息,不会有任何广告。 使用后再文件夹中会产生Licence.dat,用于...
然而,任何软件的使用都离不开其许可证(Licence)的约束。JRebel的许可证信息是关于如何合法使用这款软件的重要指南。它通常包含了关于软件授权范围、使用条件、法律条款等详细信息。通过正确理解并遵守这些条款,...
Sublime Text 3是一款备受程序员喜爱的代码编辑器,尤其在Web开发领域中广泛应用。它以其高效、轻量级且功能丰富的特性赢得了众多开发者的青睐。尽管Sublime Text 2是收费软件,但它允许用户无限期试用,不过在正式...
sourceinsight4.exe覆盖安装目录向相同名字的文件. 打开source insight 选择import a new license file,选取licence文件si4.pediy.lic。 enjoy.
arcgis9.1 sde licence.ecp是arcgis9.1 sde的许可文件
亲自测试可用的XILINX_ISE13.2 licence,欢迎下载!
Vivado的许可证还包括时间限制,这意味着许可证可能有有效期,过期后需要更新或重新获取。此外,Xilinx还提供了浮动许可证系统,允许多台计算机共享一组许可证资源,这对于团队协作尤其有用。 在实际工程应用中,...
halcon 12 6月份的licence ,新鲜出炉!!!祝大家学习顺利!!
QuartusII 8.1的Licence文件,支持所有IP核和所有器件,一般的Licence文件支持的IP有限。下载后仍然需要把网卡MAC填入,相信需要它的人应该都会改。
在IT领域,"EDU"通常代表教育版,这种版本的软件通常提供给学术机构或学生使用,价格相对较低,但可能在功能上受到一定限制。JLNK则可能是JLink的相关产品,JLink是SEGGER公司推出的一种广受欢迎的嵌入式系统调试...