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 21:27:55 浏览: 144
这段代码用于校验数据的安全性。首先,判断 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。
相关问题
包含哪些算法private boolean newTopic(Date addtime){ boolean result = false; Calendar calendar = Calendar.getInstance(); calendar.setTime(addtime); long timeadd = calendar.getTimeInMillis(); calendar.setTime(new Date()); long timethis = calendar.getTimeInMillis(); long theday = (timethis - timeadd) / (1000 * 60 * 60 * 24); if(theday<7) result = true; return result; }
这段代码是一个Java方法,用于判断某个日期距离当前日期是否在7天以内。具体实现步骤如下:
1. 获取当前日期的Calendar实例,并将其设置为当前时间。
2. 将传入的日期参数addtime转换成Calendar实例,并获取其对应的时间戳timeadd。
3. 获取当前时间对应的时间戳timethis。
4. 计算出时间差theday,即当前日期和传入日期之间相差的天数。
5. 如果theday小于7,则返回true,表示传入日期距离当前日期在7天以内;否则返回false。
该算法是基于时间戳计算时间差的方法,比较简单并且易于实现。
Calendar.getInstance().getTimeInMillis()-含义
Calendar.getInstance().getTimeInMillis() 表示获取当前时间的时间戳,即距离1970年1月1日 00:00:00 GMT的毫秒数。具体来说,调用Calendar.getInstance()方法可以获取一个Calendar对象,然后通过调用其getTimeInMillis()方法可以获取该对象所代表的时间的时间戳。时间戳是一个长整型数值,它表示从1970年1月1日 00:00:00 GMT到当前时间所经过的毫秒数。例如,如果当前时间是2022年1月1日 12时30分00秒,那么Calendar.getInstance().getTimeInMillis()的返回值将是一个大约等于 1641034200000 的长整型数值,它表示距离1970年1月1日 00:00:00 GMT已经过去了1641034200000毫秒。
阅读全文