package com.dsideal.Sso.Controller; import java.util.Map; import java.util.UUID; import com.dsideal.Sso.Util.LoginLogUtil; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.dsideal.Sso.Util.CommonUtil; import com.dsideal.Sso.Util.LdapPassWordEncoder; import com.dsideal.Sso.Util.SsoLoginHelper; import com.dsideal.Sso.Model.Login; import com.jfinal.core.Controller; public class AppLoginController extends Controller { /** * app登录 */ public void doLogin() { JSONObject resultJson = new JSONObject(); String userName = getPara("username"); String passWord = getPara("password"); try { if (StringUtils.isBlank(userName)) { resultJson.put("success", false); resultJson.put("msg", "用户名不允许为空!"); renderJson(resultJson); } if (StringUtils.isBlank(passWord)) { resultJson.put("success", false); resultJson.put("msg", "密码不允许为空!"); renderJson(resultJson); } // 密码进行ldap算法的md5加密 LdapPassWordEncoder passEncode = new LdapPassWordEncoder(); String passwordEncode = passEncode.getLdapPassword(passWord); //Map loginMap = Login.dao.getLoginInfoByUserName(userName); Map loginMap = CommonUtil.getLoginRouteMap(userName); if (loginMap == null || !passwordEncode.equals(loginMap.get("password").toString())) { resultJson.put("success", false); resultJson.put("msg", "用户名或密码错误!"); renderJson(resultJson); } String sessionId = UUID.randomUUID().toString(); SsoLoginHelper.login(sessionId, loginMap); resultJson.put("success", true); resultJson.put("sessionId", sessionId); resultJson.put("personId", loginMap.get("person_id").toString()); resultJson.put("personName", loginMap.get("person_name").toString()); resultJson.put("bureauId", loginMap.get("bureau_id").toString()); resultJson.put("identityId", loginMap.get("identity_id").toString()); //记录人员登录日志 LoginLogUtil.WriteLoginLog(loginMap.get("identity_id").toString(), loginMap.get("person_id").toString(), 2, LoginLogUtil.getIpAddr(getRequest())); renderJson(resultJson); } catch (Exception e) { resultJson.put("success", false); resultJson.put("msg", "登录异常!"); renderJson(resultJson); } } /** * 功能:登录检查 */ public void loginCheck() { JSONObject resultJson = new JSONObject(); //boolean flag = CommonUtil.getVerifyRequestIpRegister(getRequest()); boolean flag = true; if (flag) { String sessionId = getPara("sessionId"); if (!sessionId.equals("null") && sessionId != null && sessionId.length() != 0) { Map loginMap = SsoLoginHelper.loginCheck(sessionId); if (loginMap == null) { resultJson.put("success", false); resultJson.put("msg", "sessionId 已失效!"); } else { resultJson.put("success", true); resultJson.put("sessionId", sessionId); resultJson.put("personId", loginMap.get("person_id").toString()); resultJson.put("personName", loginMap.get("person_name").toString()); resultJson.put("bureauId", loginMap.get("bureau_id").toString()); resultJson.put("identityId", loginMap.get("identity_id").toString()); resultJson.put("city_id", loginMap.get("city_id").toString()); resultJson.put("area_id", loginMap.get("area_id").toString()); //loginType 1:正常登录 2:切换登录 如果为切换登录main_person_id不能写-1 String loginType = loginMap.get("login_type").toString(); if (loginType.equals("1")) { resultJson.put("mainPersonId", loginMap.get("main_person_id").toString()); } else { resultJson.put("mainPersonId", Login.dao.getMainAccountPersonIdByPersonId(loginMap.get("person_id").toString())); } } } else { resultJson.put("success", false); resultJson.put("msg", "sessionId 已失效!"); } } renderJson(resultJson); } /** * app登出 * * @throws Exception */ public void logout() { String sessionId = getPara("sessionId"); SsoLoginHelper.logout(sessionId); } }