From 3b55d06b89bf64873e685c3d78fce5affbba3d17 Mon Sep 17 00:00:00 2001 From: zheng_wenlong Date: Tue, 16 Apr 2019 11:20:38 +0900 Subject: Add warehouse server source code. [Patch Set 2] Add ReadMe.md Change-Id: I6ade52d2490f5ca4ba107c1a27ed6d5b39048725 Signed-off-by: zheng_wenlong --- .../web/controller/login/LoginController.java | 158 +++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 warehouse/src/main/java/app/market/web/controller/login/LoginController.java (limited to 'warehouse/src/main/java/app/market/web/controller/login/LoginController.java') diff --git a/warehouse/src/main/java/app/market/web/controller/login/LoginController.java b/warehouse/src/main/java/app/market/web/controller/login/LoginController.java new file mode 100644 index 0000000..316d0e8 --- /dev/null +++ b/warehouse/src/main/java/app/market/web/controller/login/LoginController.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2019 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package app.market.web.controller.login; + +import java.util.Enumeration; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +import app.market.utils.Md5Util; +import app.market.utils.constants.Constants; +import app.market.utils.json.JsonMapperUtils; +import app.market.utils.property.KeysConstants; +import app.market.utils.property.MessageUtil; +import app.market.utils.webservice.ApiParam; +import app.market.web.controller.ControllerMapping; +import app.market.web.controller.PageMapping; +import app.market.web.controller.SpringBaseController; +import app.market.web.services.login.LoginService; + +/** + * login + * + * @author Toyota + * @date 2017/10/10 + */ +@Controller +@RequestMapping(value = "login") +public class LoginController extends SpringBaseController { + + @Autowired + private LoginService loginService; + + @RequestMapping(value = "") + public ModelAndView init() { + return new ModelAndView( PageMapping.LOGIN.toString(), null ); + } + + /** + * signin + * + * @param loginId + * @param userPw + * @param httpSession + * @return + * @throws Exception + */ + @RequestMapping(value = "signin") + @ResponseBody + public String login(@RequestParam(value = "loginId") String loginId, + @RequestParam(value = "userPw") String userPw, + HttpSession session) throws Exception { + //MD5 encrypt + String userPwMd = Md5Util.md5(userPw); + List errList = new LinkedList(); + if ( StringUtils.isEmpty( loginId ) ) { + errList.add( MessageUtil.getPropertites( KeysConstants.LOGIN_LOGINID_IS_NOT_EMPTY ) ); + } + if ( StringUtils.isEmpty( userPw ) ) { + errList.add( MessageUtil.getPropertites( KeysConstants.LOGIN_PASSWORD_IS_NOT_EMPTY ) ); + } + if ( errList.size() > 0 ) { + return JsonMapperUtils.getJsonString( Constants.STATUS_UNAUTHORIZED, null, errList ); + } + + try { + String port = (String)session.getAttribute(Constants.SESSION_PORT); + String systemToken = (String)session.getAttribute(Constants.SESSION_SYSTEM_TOKEN); + String installPath = (String)session.getAttribute(Constants.SESSION_INSTALL_PATH); + String jsonStr = loginService.loginUser( loginId, userPwMd, session); + Map value = JSON.parseObject(jsonStr, Map.class); + boolean result = JsonMapperUtils.getResult(jsonStr); + if(result){ + String message = (String)JsonMapperUtils.getMessage(jsonStr); + JSONObject jsonObj = JsonMapperUtils.getJsonObject(message); + String token = jsonObj.getString(ApiParam.API_RESPONSE_TOKEN); + String refreshtoken = jsonObj.getString(ApiParam.API_RESPONSE_REFRESHTOKEN); + session.setAttribute( Constants.SESSION_TOKEN, token ); + session.setAttribute( Constants.SESSION_REFRESH_TOKEN, refreshtoken ); + + if(StringUtils.isNotEmpty(port) && StringUtils.isNotEmpty(systemToken) && StringUtils.isNotEmpty(installPath)){ + String param = "?" + Constants.ACCESS_PORT + "=" + port + "&" + Constants.ACCESS_SYSTEM_TOKEN + "=" + systemToken + "&" + Constants.ACCESS_INSTALL_PATH + "=" + installPath; + value.put("forward",ControllerMapping.MAINDEV.toString() + param); + }else{ + value.put("forward",ControllerMapping.MAIN.toString()); + } + jsonStr = JSON.toJSONString(value); + } + return jsonStr; + } catch ( Exception e ) { + e.getMessage(); + throw new RuntimeException( e.getMessage() ); + } + } + + /** + * login screen init + * + * @param httpSession + * @return + */ + @RequestMapping(value = "init") + @ResponseBody + public String init(HttpSession httpSession) { + // Enumeration attributes = httpSession.getAttributeNames(); + // while ( attributes.hasMoreElements() ) { + // String name = attributes.nextElement(); + // httpSession.removeAttribute( name ); + // } + /* httpSession.invalidate();*/ + return JsonMapperUtils.getJsonString( Constants.STATUS_SUCCESS, ControllerMapping.LOGIN.toString(), null ); + } + + /** + * logout + * + * @param httpSession + * @return + */ + @RequestMapping(value = "logout") + @ResponseBody + public String logout(HttpSession httpSession) { + Enumeration attributes = httpSession.getAttributeNames(); + while (attributes.hasMoreElements()) { + String name = attributes.nextElement(); + httpSession.removeAttribute(name); + } + httpSession.invalidate(); + return ""; + } + +} \ No newline at end of file -- cgit 1.2.3-korg