try { if (StringUtils.isBlank(AccessTokenInfoRequestDTO.getAccessToken())) { throw new BusinessException(ResponseCodeEnum.ACCESSTOKEN_ILLEGAL.getCode(), ResponseCodeEnum.ACCESSTOKEN_ILLEGAL.getMessage()); } else { TokenInfoDTO tokenInfoDTO = this.getTokenInfo(AccessTokenInfoRequestDTO.getAccessToken()); String accountId = tokenInfoDTO.getUserId(); String deviceToken = tokenInfoDTO.getDeviceToken(); String accToken = RedisCacheUtil.getStringForPrefix(accountId, new RedisTokenKeyEnum[]{RedisTokenKeyEnum.APP_USER_ACCOUNT}); if (StringUtils.isEmpty(accToken)) { throw new BusinessException(ResponseCodeEnum.ACCESS_TOKEN_LOSE.getCode(), ResponseCodeEnum.ACCESS_TOKEN_LOSE.getMessage()); } else if (!AccessTokenInfoRequestDTO.getAccessToken().equals(accToken)) { throw new BusinessException(ResponseCodeEnum.ACCESS_TOKEN_COVER.getCode(), ResponseCodeEnum.ACCESS_TOKEN_COVER.getMessage()); } else if (!ContextUtils.getAppRequestHeaderDTO().getDeviceToken().equals(deviceToken)) { throw new BusinessException(ResponseCodeEnum.ACCESS_TOKEN_COVER.getCode(), ResponseCodeEnum.ACCESS_TOKEN_COVER.getMessage()); } } } catch (BusinessException businessException) { LogUtil.boErrorLog("校验用户token失败:" + businessException.getMessage()); verifyAccessTokenResponseDTO = VerifyAccessTokenResponseDTO.builder().verifyFlag(false).errorDescription(businessException.getMessage()).build(); } catch (Exception exception) { LogUtil.boErrorLog("校验用户token异常:" + exception.getMessage()); verifyAccessTokenResponseDTO = VerifyAccessTokenResponseDTO.builder().verifyFlag(false).errorDescription(ResponseCodeEnum.ACCESSTOKEN_ILLEGAL.getMessage()).build(); }是啥意思
时间: 2024-04-26 18:26:59 浏览: 14
这段代码是一个Java程序,其主要功能是校验用户的访问令牌(access token)是否合法。如果访问令牌为空,或者无法从缓存中获取到该用户的访问令牌,或者用户提交的访问令牌与缓存中的不一致,或者用户提交的设备标识与缓存中的不一致,都会抛出异常,提示用户访问令牌不合法或已失效。如果校验失败,该程序会记录错误日志并返回一个包含错误信息的数据对象。
相关问题
StringUtils.isBlank和StringUtils.isEmpty区别
StringUtils.isBlank和StringUtils.isEmpty都是来自于Apache Commons Lang库的工具方法,用于判断字符串是否为空。
StringUtils.isEmpty方法用于判断字符串是否为空或长度为0或由空白符(whitespace)构成,返回布尔值。例如:
```
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("abc") = false
StringUtils.isEmpty(" abc ") = false
```
StringUtils.isBlank方法则更加严格,用于判断字符串是否为空或长度为0或由空白符(whitespace)构成,其中空白符包括空格、制表符、换行符等,也返回布尔值。例如:
```
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("abc") = false
StringUtils.isBlank(" abc ") = false
```
因此,如果只需要判断字符串是否为空或长度为0,可以使用StringUtils.isEmpty方法;如果需要判断字符串是否为空或长度为0或仅由空白符构成,应该使用StringUtils.isBlank方法。
StringUtils.isNoneBlank和StringUtils.isBlank区别
StringUtils.isNoneBlank和StringUtils.isBlank都是Apache Commons Lang库中的方法,用于判断字符串是否为空。
区别在于:
StringUtils.isBlank判断字符串是否为空或者只包含空格字符,如果是则返回true,否则返回false。
StringUtils.isNoneBlank判断字符串是否不为空且不只包含空格字符,如果是则返回true,否则返回false。
举个例子:
```java
StringUtils.isBlank(null); // true
StringUtils.isBlank(""); // true
StringUtils.isBlank(" "); // true
StringUtils.isBlank(" "); // true
StringUtils.isBlank("abc"); // false
StringUtils.isNoneBlank(null); // false
StringUtils.isNoneBlank(""); // false
StringUtils.isNoneBlank(" "); // false
StringUtils.isNoneBlank(" "); // false
StringUtils.isNoneBlank("abc"); // true
```