if(tokenStore.isPresent() && enableSecurity){ //校验时间戳 Long currentTimeInMillis = Calendar.getInstance().getTimeInMillis(); if ((currentTimeInMillis - dataVO.getTimestamp()) >= (1000 * 3600 * 2)) { return Rest.failed(RestEnum.FAILED, "数据时间戳有误。与当前时间相差2小时。请核对。", Boolean.FALSE); } String accessToken = TokenUtil.extractToken(request); OAuth2Authentication oauth2Authentication = tokenStore.get().readAuthentication(accessToken); if(oauth2Authentication!=null){ if(!dataVO.getClientId().equals(oauth2Authentication.getOAuth2Request().getClientId())){ return Rest.failed(RestEnum.FAILED, "客户端ID参数有误。与鉴权客户端ID不匹配。请核对。", Boolean.FALSE); } } }
时间: 2024-02-14 11:27:55 浏览: 137
inttotime.rar_delphi timestamp_delphi 时间戳_fatl2h_lonelypy7_site
这段代码用于校验数据的安全性。首先,判断 tokenStore 是否存在并且 enableSecurity 为 true。如果满足条件,则进行时间戳的校验。代码中获取当前时间的毫秒数 currentTimeInMillis,并计算当前时间与数据的时间戳相差的时间。如果相差超过 2 小时,则返回一个失败的 Rest 对象,其中包含错误信息 "数据时间戳有误。与当前时间相差2小时。请核对。",并且操作结果为 Boolean.FALSE。
接下来,从请求中提取 accessToken,并使用 tokenStore 的 readAuthentication 方法读取 oauth2Authentication 对象。如果 oauth2Authentication 不为 null,则进行客户端 ID 的校验。代码中比较 dataVO 的 clientId 和 oauth2Authentication 的 OAuth2Request 的 clientId 是否相等,如果不相等,则返回一个失败的 Rest 对象,其中包含错误信息 "客户端ID参数有误。与鉴权客户端ID不匹配。请核对。",并且操作结果为 Boolean.FALSE。
阅读全文