package com.se.system.service;
|
|
import com.se.system.domain.vo.LicenseExtraParamVo;
|
import com.se.system.service.inte.IACustomVerifyListener;
|
|
@SuppressWarnings("ALL")
|
public class CustomVerifyListenerService extends IACustomVerifyListener {
|
/**
|
* 单例Bean,这个静态变量会缓存证书中最大用户注册数的
|
*/
|
private static Long registerAmount = 0L;
|
|
@Override
|
public boolean verify(LicenseExtraParamVo licenseExtra) {
|
registerAmount = null == licenseExtra.getRegisterAmount() ? 0 : licenseExtra.getRegisterAmount();
|
System.out.println("======= 自定义证书验证监听器A 实现verify方法 =======");
|
System.out.println("证书最大验证人数是:" + registerAmount);
|
/**
|
* 这里,可以做一些和业务系统有关的参数验证
|
* 在这个业务系统这个监听方法中,我们可以先去user表查询下,当前系统的注册用户数量
|
* 然后拿着这个数量和lic参数中约束的最大注册用户量进行比较,如果>,则抛出异常
|
* 这样做的目的是防止业务系统部署到客户端本地服务器上时,数据库是公开的,防止对方通过手动改表来添加用户
|
*/
|
long count = 1001;
|
if (count >= registerAmount) {
|
System.out.println("系统当前用户数超过最大用户注册限制数【" + registerAmount + "】");
|
}
|
|
System.out.println("系统注册最大用户数量未超过" + count + ",验证用过!");
|
return true;
|
}
|
|
/**
|
* 这个单独的重载的验证方法,主要是用于业务系统中进行调用,带参数的verify方法用于注解
|
* 而这个不带参数的verify,更加灵活些,比如在系统中注册接口(Controller)上,除了自身@VLicense注解外,
|
* 可以在调用这个方法,来额外的验证注册人数是否已满
|
*
|
* @return
|
* @throws
|
*/
|
public boolean verify() {
|
Long count = 100L;
|
if (count.equals(registerAmount)) {
|
System.out.println("系统当前用户数已达到最大用户注册限制数【" + registerAmount + "】,无法再注册新用户。如需扩充用户注册的数量,请联系我们重新购买License!");
|
}
|
return true;
|
}
|
}
|