/* * Copyright @ 2013 CurisTEC, S.A.S. All Rights Reserved. */ package net.curisit.securis; import java.util.Date; import java.util.HashMap; import java.util.Map; import net.curisit.securis.beans.LicenseBean; import net.curisit.securis.beans.RequestBean; import net.curisit.securis.beans.SignedLicenseBean; import net.curisit.securis.utils.JsonUtils; /** * FreeLicenseGenerator *

* Helper to generate a signed FREE license (no expiration) for a given app and code. * * @author JRA * Last reviewed by JRA on Oct 5, 2025. */ public class FreeLicenseGenerator { /** Constant license type code for FREE licenses. */ public static final String FREE_LICENSE_TYPE = "FREE"; /** * generateLicense *

* Build and sign a FREE license using the default generator. Uses a Date(-1) * sentinel as "no expiration". * * @param appName application name * @param licCode license code * @param metadata additional metadata to embed * @return signed license bean wrapper * @throws SeCurisException on generation/signature errors */ public static SignedLicenseBean generateLicense(String appName, String licCode, Map metadata) throws SeCurisException { SignedLicenseBean sl = null; RequestBean rb = new RequestBean(); rb.setLicenseTypeCode(FREE_LICENSE_TYPE); LicenseGenerator licenseGenerator = LicenseGenerator.getInstance(); LicenseBean lb = licenseGenerator.generateLicense(rb, metadata, new Date(-1), licCode, appName); sl = new SignedLicenseBean(lb); return sl; } /** * Demo main * * @param args * @throws SeCurisException */ public static void main(String[] args) throws SeCurisException { Map metadata = new HashMap<>(); metadata.put("max_docs", 2000); metadata.put("max_size", 5L*1024*1024*1024); SignedLicenseBean lic = generateLicense("Doxr", "DOXR-FREE-01", metadata); System.out.println(JsonUtils.toPrettyJSON(lic)); } }