|
@@ -8,9 +8,11 @@ import com.dji.sample.common.error.CommonErrorEnum;
|
|
|
import com.dji.sample.common.model.CustomClaim;
|
|
import com.dji.sample.common.model.CustomClaim;
|
|
|
import com.dji.sample.common.util.JwtUtil;
|
|
import com.dji.sample.common.util.JwtUtil;
|
|
|
import com.dji.sample.component.mqtt.config.MqttPropertyConfiguration;
|
|
import com.dji.sample.component.mqtt.config.MqttPropertyConfiguration;
|
|
|
|
|
+import com.dji.sample.component.redis.RedisOpsUtils;
|
|
|
import com.dji.sample.configuration.CustomConfiguration;
|
|
import com.dji.sample.configuration.CustomConfiguration;
|
|
|
import com.dji.sample.manage.model.entity.UserEntity;
|
|
import com.dji.sample.manage.model.entity.UserEntity;
|
|
|
import com.dji.sample.manage.service.IUserService;
|
|
import com.dji.sample.manage.service.IUserService;
|
|
|
|
|
+import com.dji.sample.manage.service.IWhiteListService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpMethod;
|
|
import org.springframework.http.HttpMethod;
|
|
@@ -46,7 +48,7 @@ public class AuthInterceptor implements HandlerInterceptor {
|
|
|
public static final String USER_CODE = "userCode";
|
|
public static final String USER_CODE = "userCode";
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private IUserService userService;
|
|
|
|
|
|
|
+ private IWhiteListService whiteListService;
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -58,23 +60,37 @@ public class AuthInterceptor implements HandlerInterceptor {
|
|
|
response.setStatus(HttpStatus.OK.value());
|
|
response.setStatus(HttpStatus.OK.value());
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
- String token = request.getHeader(PARAM_TOKEN);
|
|
|
|
|
- if (!StringUtils.hasText(token)) {
|
|
|
|
|
- response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
|
|
|
|
- log.error(CommonErrorEnum.NO_TOKEN.getMessage());
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ String ip = request.getRemoteAddr();
|
|
|
|
|
+
|
|
|
|
|
+ Boolean check = RedisOpsUtils.checkExist(ip);
|
|
|
|
|
+ if(!check) {
|
|
|
|
|
+ Boolean flg = whiteListService.selIp(ip);
|
|
|
|
|
+ if(flg) {
|
|
|
|
|
+ RedisOpsUtils.set(ip,ip);
|
|
|
|
|
+ return true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ String token = request.getHeader(PARAM_TOKEN);
|
|
|
|
|
+ if (!StringUtils.hasText(token)) {
|
|
|
|
|
+ response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
|
|
|
|
+ log.error(CommonErrorEnum.NO_TOKEN.getMessage());
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Check if the current token is valid.
|
|
|
|
|
+ Optional<CustomClaim> customClaimOpt = JwtUtil.parseToken(token);
|
|
|
|
|
+ if (customClaimOpt.isEmpty()) {
|
|
|
|
|
+ response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Put the custom data from the token into the request.
|
|
|
|
|
+ request.setAttribute(TOKEN_CLAIM, customClaimOpt.get());
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // Check if the current token is valid.
|
|
|
|
|
- Optional<CustomClaim> customClaimOpt = JwtUtil.parseToken(token);
|
|
|
|
|
- if (customClaimOpt.isEmpty()) {
|
|
|
|
|
- response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
|
|
|
|
- return false;
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // Put the custom data from the token into the request.
|
|
|
|
|
- request.setAttribute(TOKEN_CLAIM, customClaimOpt.get());
|
|
|
|
|
return true;
|
|
return true;
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|