package com.sentinel.license.utils; import Aladdin.Hasp; import Aladdin.HaspStatus; import cn.hutool.log.Log; public class HaspUtil { private static final Log log = Log.get(); /** Runtime query scope */ protected final static String KEY_SCOPE = "\n" + "\n" + "\n" + "\n"; /** Runtime query view */ protected final static String KEY_VIEW = ""; protected final static String LICENSE_STATUS = "" + "" + " " + " " + " " + " " + " " + " " + " " + " " + "" + ""; protected final static String KEY_C2V_FORMAT = ""; public final static String ALL_FORMAT = "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; public final static String HASP_FORMAT = "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; public static String getLicenseInfo(String vendorCode, Integer featureId) { Hasp hasp = new Hasp(featureId); hasp.login(vendorCode); int status = hasp.getLastError(); log.info("query license status: {}", status); if(status == HaspStatus.HASP_STATUS_OK) { String licenseInfo = hasp.getSessionInfo(LICENSE_STATUS); status = hasp.getLastError(); // log.info("license status: {}", status); if (status != HaspStatus.HASP_STATUS_OK) { } return licenseInfo; }else if (status == HaspStatus.HASP_FEATURE_EXPIRED){ //过期 String licenseInfo = hasp.getInfo("", LICENSE_STATUS,vendorCode); return licenseInfo; }else { log.error("Error: with status code :{}",status); return null; } } /** * Updates the key with the license (v2c) * * @param v2c * @return * @throws Exception */ public static int updateKeyWithLicense(String v2c) { Hasp hasp = new Hasp(Hasp.HASP_DEFAULT_FID); hasp.update(v2c); int status = hasp.getLastError(); log.info("updateLicense license status: {}", status); if (status != HaspStatus.HASP_STATUS_OK) { log.error("Error: updateLicense Fails with status code :{}",status); } return status; } /** * * @param vendorCode * @return * @throws Exception */ public static String readC2V(String vendorCode, Integer featureId) { Hasp hasp = new Hasp(featureId); hasp.login(vendorCode); int status = hasp.getLastError(); // log.info("license status: {}", status); if(status == HaspStatus.HASP_STATUS_OK) { //如果已经安装过license ,读取指纹和 hasp id String licenseInfo = hasp.getSessionInfo(KEY_C2V_FORMAT); // String licenseInfo = hasp.getInfo(KEY_SCOPE,KEY_C2V_FORMAT,vendorCode); status = hasp.getLastError(); log.info("getLicense c2v license status: {}", status); if (status != HaspStatus.HASP_STATUS_OK) { log.error("Error: Download Fails with status code :{}",status); } return licenseInfo; }else { hasp = new Hasp(featureId); String infos = hasp.getInfo(KEY_SCOPE, KEY_VIEW, vendorCode); status = hasp.getLastError(); log.info("getLicense c2v license status: {}", status); if(status != HaspStatus.HASP_STATUS_OK) { log.error("Error: getLicense c2v Fails with status code :{}",status); throw new RuntimeException(); } return infos; } } public static int verify(String vendorCode, Integer fetureId) { Hasp hasp = new Hasp(fetureId); hasp.login(vendorCode); int status = hasp.getLastError(); log.info("verify license status: {}", status); if(status != HaspStatus.HASP_STATUS_OK) { log.error("Error: license login Fails with status code :{}",status); } hasp.logout(); return status; } }