|
@@ -6,9 +6,11 @@ import com.cdf.common.ResultCode;
|
|
|
import com.cdf.common.ResultData;
|
|
|
import com.cdf.entity.User;
|
|
|
import com.cdf.entity.UserToken;
|
|
|
+import com.cdf.exception.BusinessException;
|
|
|
import com.cdf.service.IUserService;
|
|
|
import com.cdf.service.IUserTokenService;
|
|
|
import com.cdf.util.JwtUtil;
|
|
|
+import com.fdkankan.redis.util.RedisUtil;
|
|
|
import org.apache.commons.logging.Log;
|
|
|
import org.apache.commons.logging.LogFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -18,7 +20,6 @@ import org.springframework.web.servlet.HandlerInterceptor;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
-import java.util.List;
|
|
|
|
|
|
@Component
|
|
|
public class BackUserInterceptor implements HandlerInterceptor {
|
|
@@ -26,9 +27,7 @@ public class BackUserInterceptor implements HandlerInterceptor {
|
|
|
private static final Log log = LogFactory.getLog("programLog");
|
|
|
|
|
|
@Autowired
|
|
|
- private IUserService userService;
|
|
|
- @Autowired
|
|
|
- private IUserTokenService userTokenService;
|
|
|
+ private RedisUtil redisUtil;
|
|
|
|
|
|
@Override
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
|
@@ -48,26 +47,19 @@ public class BackUserInterceptor implements HandlerInterceptor {
|
|
|
}
|
|
|
|
|
|
public boolean checkUser(String token,HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
- Integer userId = JwtUtil.getId(token);
|
|
|
- User user = userService.getById(userId);
|
|
|
- LambdaQueryWrapper<UserToken> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(UserToken::getLoginToken,token);
|
|
|
- List<UserToken> list = userTokenService.list(wrapper);
|
|
|
- if(list == null || list.size() <= 0){
|
|
|
+ if(!redisUtil.hasKey("token:" + token)){
|
|
|
this.needLogin(request, response);
|
|
|
return false;
|
|
|
}
|
|
|
-// if(!token.equals(userToken.getLoginToken())){
|
|
|
-// this.otherLogin(request, response);
|
|
|
-// return false;
|
|
|
-// }
|
|
|
- if(user == null ){
|
|
|
- this.userNotExist(request, response);
|
|
|
- return false;
|
|
|
- }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ public void checkUser(String token) {
|
|
|
+ if(!redisUtil.hasKey("token:" + token)){
|
|
|
+ throw new BusinessException(ResultCode.NOT_LOGIN);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void needLogin(HttpServletRequest request, HttpServletResponse response) {
|
|
|
try {
|
|
@@ -77,22 +69,6 @@ public class BackUserInterceptor implements HandlerInterceptor {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- private void otherLogin(HttpServletRequest request, HttpServletResponse response) {
|
|
|
- try {
|
|
|
- response.getWriter().append(ResultData.errorString(ResultCode.OTHER_LOGIN));
|
|
|
- } catch (IOException e) {
|
|
|
- log.info("LoginInterceptor|needLogin|IOException|" + e);
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- private void userNotExist(HttpServletRequest request, HttpServletResponse response) {
|
|
|
- try {
|
|
|
- response.getWriter().append(ResultData.errorString(ResultCode.USER_NOT_EXIST));
|
|
|
- } catch (IOException e) {
|
|
|
- log.info("LoginInterceptor|needLogin|IOException|" + e);
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
}
|
|
|
|