`

给你的应用加入简易Licence限制

阅读更多

      有的时候,客户会提出这样的需求,他们的应用能不能当产品一样的出售呀,如果能够保证每一个买家有一个唯一的限制的话,这将是一个不错的想法.

  为了能够达到这个目的,我就想了一个很弱智的实现方案.就是在应用启动时加入一些参数,并做一个检验,如果检验失败后就启动失败,这样的话,这个应用就不能正常使用.

  好了.就按照这个思路来做一个实现,然后再做扩展.因为我们使用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
分享到:
评论
6 楼 fsroger 2009-06-01  
感觉现在绝大部分,都是ca证书认证或者时间限制。我是很感兴趣如何限制用户数
5 楼 heweiya 2009-06-01  
看来我这招,专治菜鸟.大家有更好的意见没得.
4 楼 fsroger 2009-06-01  
这种操作,如果有点懂软件的人,都会把配置文件的相关配置代码删了。照样可以跑系统。
3 楼 yimlin 2009-06-01  
开发人员能删,若用户也删除这段配置呢。
我明白你的意思,只是若太过简易了就不好讨论啦。
2 楼 heweiya 2009-06-01  
只是投石问路的基本思路和方法,可以基于这个方法进行深入的开发.当然,你也可以在配置文件当中删除这个片段.这样的话就没有限制了.
1 楼 yimlin 2009-06-01  
没有看出来怎么做的licence限制。

用户数限制仅仅是一个基于数量限制的licence方案实例,还有其它例如基于产品数的,这里也没有给出方案。就贴子本身,若超过用户数就启动失败,若用户就是不重启系统呢(掉电除外)?

还有基于(组件)功能的licence,基于安装数,基于使用时间等等,贴子没有任何讨论。

此外licence限制也和spring无关吧。

投一个新手贴。

相关推荐

    licence 限制

    请确保JAVA_HOME设置正确,如C:\Program Files\Java\JDK(注意最后没有\) 请按以下步骤运行此演示程序 第一步,运行run.bat部署演示环境 第二步,执行命令"java -jar 50194.jar"运行此演示程序,效果如附图1,2所示 ...

    C#软件Licence应用实例

    软件Licence应用实例,主要实现软件客户端授权使用,使用期限限制等。 开发语言:C# 开发工具:.NET6.0 涉及技术:电脑硬件信息获取,非对称加密,文件读写等。 具体可参考相关博文

    .NET软件Licence应用实例,Licence生成工具,Licence验证

    .NET软件Licence应用实例 实例说明 开发技术:C# 开发工具:Visual Studio 2022 开发环境:.Net 6.0 使用说明 客户端测试工具,获取电脑信息 发送到管理员,用Licence生成工具,生成Licence 验证成功,正常使用;...

    C#3种软件licence开发源代码

    C#3种软件licence开发源代码

    arcgis Licence 大全

    开发者可以使用这些许可证文件来激活和限制他们所开发的GIS应用程序的功能。 ArcGIS Engine 9.2的许可证配置文件("ArcGIS 92 ecps.rar")可能包含了不同级别的许可证,例如基础版、标准版或高级版,每种版本支持的...

    Quartus最全licence

    Quartus最全licence,支持quartus所有功能。测试可以支持17.1。

    ADS1.2licence绝对可用

    ADS1.2 licence 绝对可用

    licence-reco.zip

    本篇文章将详细解读一个名为"licence-reco.zip"的实习大作业,它涵盖了Pyqt5界面编程、车牌识别以及TCP通信等核心知识点,通过这个项目,我们可以深入理解这些技术的实际应用。 首先,Pyqt5是一种广泛使用的Python...

    vivado15.4之licence

    vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4licence,测试可用vivado15.4...

    ORCAD-10.3-Licence生成程序.rar

    1. 下载并解压:首先,你需要下载名为“ORCAD_10.3_Licence生成程序”的压缩包文件,解压后获取到生成器程序。 2. 运行程序:双击运行生成器,按照界面提示进行操作。通常,你需要提供一些必要的信息,如机器码(这...

    微信硬件Access_token Licence获取

    微信硬件平台设备信息获取软件,输入AppID/Appsecret/产品编码,点击获取信息即可获取Access_token Deviceid Licence信息。 本软件不会获取个人任何信息,不会有任何广告。 使用后再文件夹中会产生Licence.dat,用于...

    jrebel licence

    然而,任何软件的使用都离不开其许可证(Licence)的约束。JRebel的许可证信息是关于如何合法使用这款软件的重要指南。它通常包含了关于软件授权范围、使用条件、法律条款等详细信息。通过正确理解并遵守这些条款,...

    sublime text 3 licence

    Sublime Text 3是一款备受程序员喜爱的代码编辑器,尤其在Web开发领域中广泛应用。它以其高效、轻量级且功能丰富的特性赢得了众多开发者的青睐。尽管Sublime Text 2是收费软件,但它允许用户无限期试用,不过在正式...

    source insight4.0破解licence

    sourceinsight4.exe覆盖安装目录向相同名字的文件. 打开source insight 选择import a new license file,选取licence文件si4.pediy.lic。 enjoy.

    arcgis9.1 sde licence.ecp

    arcgis9.1 sde licence.ecp是arcgis9.1 sde的许可文件

    ISE13.2 lICENCE

    亲自测试可用的XILINX_ISE13.2 licence,欢迎下载!

    vivado_2016.4_licence

    Vivado的许可证还包括时间限制,这意味着许可证可能有有效期,过期后需要更新或重新获取。此外,Xilinx还提供了浮动许可证系统,允许多台计算机共享一组许可证资源,这对于团队协作尤其有用。 在实际工程应用中,...

    halcon12 licence 6月

    halcon 12 6月份的licence ,新鲜出炉!!!祝大家学习顺利!!

    QuartusII 8.1 Licence(full)

    QuartusII 8.1的Licence文件,支持所有IP核和所有器件,一般的Licence文件支持的IP有限。下载后仍然需要把网卡MAC填入,相信需要它的人应该都会改。

    EDU LICENCE注册生成软件.7z

    在IT领域,"EDU"通常代表教育版,这种版本的软件通常提供给学术机构或学生使用,价格相对较低,但可能在功能上受到一定限制。JLNK则可能是JLink的相关产品,JLink是SEGGER公司推出的一种广受欢迎的嵌入式系统调试...

Global site tag (gtag.js) - Google Analytics