浏览代码

请求时判断用户是否已经存在

vincent 3 年之前
父节点
当前提交
3cf1d2f023

+ 26 - 21
server/src/main/java/edp/davinci/core/inteceptor/AuthenticationInterceptor.java

@@ -19,6 +19,7 @@
 
 package edp.davinci.core.inteceptor;
 
+import edp.davinci.dto.userDto.UserRegist;
 import org.apache.commons.lang.StringUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -111,19 +112,23 @@ public class AuthenticationInterceptor implements HandlerInterceptor
         }
 
         // token 不为空
-        if(StringUtils.isNotEmpty(token)){
+        if (StringUtils.isNotEmpty(token))
+        {
             // 兼容之前登录
-            if(token.startsWith(Constants.TOKEN_PREFIX)){
+            if (token.startsWith(Constants.TOKEN_PREFIX))
+            {
                 String username = tokenUtils.getUsername(token);
                 User userInfo = userService.getByUsername(username);
-                if(StringUtils.isNotEmpty(username)){
+                if (StringUtils.isNotEmpty(username))
+                {
                     request.setAttribute(Constants.CURRENT_USER, userInfo);
                     return true;
                 }
             }
             // 统一认证
             JSONObject acessToken = (JSONObject) redisUtils.get(token);
-            if(acessToken == null){
+            if (acessToken == null)
+            {
                 log.debug("token is not found in redis");
                 response.setStatus(HttpCodeEnum.UNAUTHORIZED.getCode());
                 response.getWriter().print(ErrorMsg.ERR_LOAD_DATA_TOKEN);
@@ -133,14 +138,12 @@ public class AuthenticationInterceptor implements HandlerInterceptor
             User user = userService.getByUsername(userinfoObject.getString("username"));
             if (null == user)
             {
-                if (!request.getServletPath().endsWith("/download/page"))
-                {
-                    log.debug("{} : token user not found", request.getServletPath());
-                }
-                response.setStatus(HttpCodeEnum.FORBIDDEN.getCode());
-                response.getWriter().print(ErrorMsg.ERR_MSG_PERMISSION);
-                return false;
-
+                // 用户不存在的时候,插入用户
+                UserRegist userRegist = new UserRegist();
+                userRegist.setUsername(userinfoObject.getString("username"));
+                userRegist.setEmail(userinfoObject.getString("email"));
+                userRegist.setPassword(userinfoObject.getString("password"));
+                userService.regist(userRegist);
             }
             request.setAttribute(Constants.CURRENT_USER, user);
         }
@@ -158,21 +161,23 @@ public class AuthenticationInterceptor implements HandlerInterceptor
             }
             JSONObject userinfoObject = (JSONObject) JSONObject.toJSON(redisMap);
             JSONObject userInfo = userinfoObject.getJSONObject("userInfo");
-            if(null == userinfoObject){
-                log.debug("{} : userinfoObject is null", userinfoObject.toJSONString());
+            if (null == userinfoObject)
+            {
+                log.debug("{} : userinfo Object is null", userinfoObject.toJSONString());
             }
             User user = userService.getByUsername(userInfo.getString("username"));
             if (null == user)
             {
-                if (!request.getServletPath().endsWith("/download/page"))
-                {
-                    log.debug("{} : token user not found", request.getServletPath());
-                }
-                response.setStatus(HttpCodeEnum.FORBIDDEN.getCode());
-                response.getWriter().print(ErrorMsg.ERR_MSG_PERMISSION);
-                return false;
+                // 用户不存在的时候,插入用户
+                UserRegist userRegist = new UserRegist();
+                userRegist.setUsername(userInfo.getString("username"));
+                userRegist.setEmail(userInfo.getString("email"));
+                userRegist.setPassword(userInfo.getString("password"));
+                userService.regist(userRegist);
+                user = userService.getByUsername(userInfo.getString("username"));
 
             }
+
             request.setAttribute(Constants.CURRENT_USER, user);
         }
 

+ 4 - 4
server/src/main/java/edp/davinci/service/impl/UserServiceImpl.java

@@ -136,10 +136,10 @@ public class UserServiceImpl extends BaseEntityService implements UserService {
 
         String email = userRegist.getEmail();
         //邮箱是否已经注册
-        if (isExist(email, null, null)) {
-            log.info("The email({}) has been registered", email);
-            throw new ServerException("The email:" + email + " has been registered");
-        }
+//        if (isExist(email, null, null)) {
+//            log.info("The email({}) has been registered", email);
+//            throw new ServerException("The email:" + email + " has been registered");
+//        }
 
         BaseLock usernameLock = getLock(entity, username, null);
         if (usernameLock != null && !usernameLock.getLock()) {