Przeglądaj źródła

添加token生成

laowo 4 lat temu
rodzic
commit
0044775d71

+ 6 - 1
src/cn/com/usky/iot/auth/TokenAuthService.java

@@ -1,5 +1,8 @@
 package cn.com.usky.iot.auth;
+
+import cn.com.usky.iot.controller.login.Constants;
 import cn.com.usky.iot.controller.login.LoginService;
+import cn.com.usky.iot.entity.YtiotTAdmin;
 import cn.com.usky.utils.DESUtils;
 import cn.com.usky.utils.ListUtil;
 import cn.com.usky.utils.MapUtils;
@@ -10,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.joda.time.DateTime;
 import org.springframework.orm.hibernate3.HibernateTemplate;
+
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Collections;
@@ -109,13 +113,14 @@ public final class TokenAuthService {
 
         // 判断userId有效性
         String userId = tokenJson.getString(TOKEN_USERID);
-        List userInfo = loginService.getObjectByUserId(userId);
+        List<YtiotTAdmin> userInfo = loginService.getObjectByUserId(userId);
         if (ListUtil.isBlank(userInfo)) {
             LOGGER.warn("认证失败,非有效用户~");
             return new TokenAuthBO(TokenAuthEnum.FAIL, tokenJson);
         }
 
         LOGGER.info("token认证成功 \n" + "token=" + token + "\n" + "tokenInfo=" + tokenJson);
+        tokenJson.put(Constants.USER_INFO, userInfo.get(0));
         return new TokenAuthBO(TokenAuthEnum.SUCCESS, tokenJson);
     }
 

+ 16 - 5
src/cn/com/usky/iot/controller/FrontpageController.java

@@ -6,7 +6,10 @@ import javax.servlet.http.HttpServletRequest;
 
 import cn.com.usky.iot.auth.TokenAuthBO;
 import cn.com.usky.iot.auth.TokenAuthService;
+import cn.com.usky.iot.controller.login.Constants;
+import cn.com.usky.iot.entity.YtiotTAdmin;
 import cn.com.usky.utils.HttpServletRequestUtils;
+import com.alibaba.fastjson.JSONObject;
 import org.apache.tools.ant.taskdefs.condition.Http;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -53,16 +56,24 @@ public class FrontpageController {
             @RequestParam(value = "queryJson", required = false) String queryJson,
             HttpServletRequest request
     ) {
-        TokenAuthBO tokenAuthBO = HttpServletRequestUtils.tokenAuthForPC(request, tokenAuthService);
+        ModelAndView mav = new ModelAndView();
+
+        TokenAuthBO tokenAuthBO = HttpServletRequestUtils.tokenAuthForYT(request, tokenAuthService);
         boolean isAuth = tokenAuthBO.isAuthState();
         if (!isAuth) {
-
+            JSONObject json = new JSONObject();
+            json.put("check", false);
+            json.put("errMsg", "权限错误,请重新登录");
+            mav.addObject("ret_str", json.toJSONString());
         }
-
-        ModelAndView mav = new ModelAndView();
         mav.setViewName("return");
+        //通过获取用户信息
+        YtiotTAdmin o = (YtiotTAdmin) tokenAuthBO.getData().get(Constants.USER_INFO);
+        net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(queryJson);
+        jsonObject.put("V_LOGINNAME", o.getVLoginname());
+        jsonObject.put("V_PASSWORD", o.getVPassword());
         try {
-            String ret = frontpageController.ytiotFrontpageQueryService.getCurrentObjectListByCompanyId(queryJson);
+            String ret = frontpageController.ytiotFrontpageQueryService.getCurrentObjectListByCompanyId(jsonObject.toString());
             mav.addObject("ret_str", ret);
         } catch (Exception e) {
             // TODO Auto-generated catch block

+ 1 - 0
src/cn/com/usky/iot/controller/login/Constants.java

@@ -5,5 +5,6 @@ package cn.com.usky.iot.controller.login;
  * **/
 public final class Constants {
 	public static final String RESPONSE_TOKEN = "authToken";
+	public static final String USER_INFO = "userInfo";
 
 }

+ 9 - 2
src/cn/com/usky/iot/controller/login/LoginController.java

@@ -31,7 +31,6 @@ import java.util.Map;
 @Controller
 @RequestMapping("login")
 public class LoginController extends BaseReController {
-
     @Autowired
     private LoginService loginService;
     @Autowired
@@ -43,7 +42,15 @@ public class LoginController extends BaseReController {
         String sessionCheckNumber = (String) session.getAttribute("checkNumber");
         JSONObject jsonObject = JSONObject.fromObject(queryJson);
         String code = jsonObject.has("code") ? jsonObject.getString("code") : null;
-        if (code != null && code.equals(sessionCheckNumber)) {
+        if (StringUtils.isBlank(code)) {
+            com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
+            result.put("Msg", "PLEASE ENTER CODE");
+            result.put("ServerName", "www.jd-ioe.com/UskyIoT");
+            result.put("check", "true");
+            result.put("login", "false");
+            return result.toString();
+        }
+        if (!code.equals(sessionCheckNumber)) {
             com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
             result.put("Msg", "CODE WRONG");
             result.put("ServerName", "www.jd-ioe.com/UskyIoT");

+ 16 - 0
src/cn/com/usky/iot/controller/login/LoginServiceImpl.java

@@ -135,6 +135,7 @@ public class LoginServiceImpl implements LoginService {
         return jsonObject.toString();
     }
 
+/*
     @Override
     public List getObjectByUserId(String userId) {
         return hibernateTemplate.executeFind(new HibernateCallback() {
@@ -147,6 +148,21 @@ public class LoginServiceImpl implements LoginService {
             }
         });
     }
+*/
+
+
+    @Override
+    public List getObjectByUserId(String userId) {
+        return hibernateTemplate.executeFind(new HibernateCallback() {
+            @Override
+            public Object doInHibernate(Session session)
+                    throws HibernateException, SQLException {
+                String sql = "from YtiotTAdmin t where t.uqAdminId='" + userId + "' and t.EStatus='1'";
+                Query query = session.createQuery(sql);
+                return query.list();
+            }
+        });
+    }
 
 
 }

+ 26 - 0
src/cn/com/usky/utils/HttpServletRequestUtils.java

@@ -36,4 +36,30 @@ public final class HttpServletRequestUtils {
         TokenAuthBO tokenBo = tokenService.verifyToken(token.toString());
         return tokenBo;
     }
+
+    /**
+     * 永天02平台验证
+     *
+     * @param request
+     * @param tokenService
+     * @return
+     */
+    public static TokenAuthBO tokenAuthForYT(HttpServletRequest request, TokenAuthService tokenService) {
+        StringBuilder token = new StringBuilder(256);
+        Cookie[] cookies = request.getCookies();
+        if (cookies == null) {
+            TokenAuthBO tokenBo = tokenService.verifyToken(null);
+            return tokenBo;
+        }
+        for (Cookie c : cookies) {
+            if (Constants.RESPONSE_TOKEN.equals(c.getName())) {
+                token.append(c.getValue());
+                break;
+            }
+        }
+        TokenAuthBO tokenBo = tokenService.verifyToken(token.toString());
+        return tokenBo;
+    }
+
+
 }