| | |
| | | import com.ruoyi.system.service.ISysClientAppService; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | |
| | | import static com.ruoyi.common.utils.SecurityUtils.md5; |
| | | |
| | | /** |
| | | * 客户应用配置 服务层实现 |
| | | */ |
| | |
| | | @Override |
| | | public SysClientApp selectSysClientAppByAppId(Long appId) { |
| | | return sysClientAppMapper.selectSysClientAppByAppId(appId); |
| | | } |
| | | |
| | | /** |
| | | * 通过应用标识查询客户应用配置 |
| | | * |
| | | * @param appKey 应用标识 |
| | | * @return 客户应用配置 |
| | | */ |
| | | @Override |
| | | public SysClientApp selectSysClientAppByAppKey(String appKey) |
| | | { |
| | | return sysClientAppMapper.selectSysClientAppByAppKey(appKey); |
| | | } |
| | | |
| | | /** |
| | |
| | | public int deleteSysClientAppByAppId(Long appId) { |
| | | return sysClientAppMapper.deleteSysClientAppByAppId(appId); |
| | | } |
| | | |
| | | @Override |
| | | public boolean validateSign(String appId, String sign, String timestamp) { |
| | | // 根据appId获取应用信息 |
| | | SysClientApp clientApp = sysClientAppMapper.selectSysClientAppByAppKey(appId); |
| | | if (clientApp == null) { |
| | | return false; |
| | | } |
| | | |
| | | // 验证应用是否有效 |
| | | if (!"0".equals(clientApp.getStatus())) { |
| | | return false; |
| | | } |
| | | |
| | | // 验证有效期 |
| | | if (clientApp.getValidStartTime() != null && clientApp.getValidEndTime() != null) { |
| | | long currentTime = System.currentTimeMillis(); |
| | | if (currentTime < clientApp.getValidStartTime().getTime() |
| | | || currentTime > clientApp.getValidEndTime().getTime()) { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // 生成签名 |
| | | String serverSign = generateSign(appId, clientApp.getSecurityKey(), timestamp); |
| | | |
| | | // 比较签名 |
| | | return sign.equals(serverSign); |
| | | } |
| | | |
| | | /** |
| | | * 生成签名 |
| | | * 签名规则:MD5(appId + timestamp + securityKey) |
| | | */ |
| | | private String generateSign(String appId, String securityKey, String timestamp) { |
| | | String signStr = appId + timestamp + securityKey; |
| | | return md5(signStr); |
| | | } |
| | | } |