package com.dsideal.Sso.Controller; import java.util.Map; import java.util.UUID; import com.dsideal.Sso.Interceptor.EmptyInterface; import com.dsideal.Sso.Model.LoginModel; import com.dsideal.Sso.Util.LoginLogUtil; import com.jfinal.aop.Before; import com.jfinal.ext.interceptor.POST; 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.jfinal.core.Controller; public class AppLoginController extends Controller { /** * app登录 */ @Before({POST.class}) @EmptyInterface({"userName", "passWord"}) public void doLogin(String userName, String passWord) { JSONObject resultJson = new JSONObject(); // 密码进行ldap算法的md5加密 LdapPassWordEncoder passEncode = new LdapPassWordEncoder(); String passwordEncode = passEncode.getLdapPassword(passWord); Map loginMap = LoginModel.lm.getLoginInfoByUserName(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); if (loginMap != null) { resultJson.put("personId", loginMap.get("person_id").toString()); } if (loginMap != null) { resultJson.put("personName", loginMap.get("person_name").toString()); } if (loginMap != null) { resultJson.put("bureauId", loginMap.get("bureau_id").toString()); } if (loginMap != null) { resultJson.put("identityId", loginMap.get("identity_id").toString()); } //记录人员登录日志 if (loginMap != null) { LoginLogUtil.WriteLoginLog(loginMap.get("identity_id").toString(), loginMap.get("person_id").toString(), LoginLogUtil.getIpAddr(getRequest())); } renderJson(resultJson); } /** * 功能:登录检查 */ @Before({POST.class}) @EmptyInterface({"sessionId"}) public void loginCheck(String sessionId) { JSONObject resultJson = new JSONObject(); if (!sessionId.equals("null") && !sessionId.isEmpty()) { 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")); resultJson.put("personName", loginMap.get("person_name")); resultJson.put("bureauId", loginMap.get("bureau_id")); resultJson.put("identityId", loginMap.get("identity_id")); resultJson.put("city_id", loginMap.get("city_id")); resultJson.put("area_id", loginMap.get("area_id")); } } else { resultJson.put("success", false); resultJson.put("msg", "sessionId 已失效!"); } renderJson(resultJson); } /** * app登出 * * @throws Exception */ @Before({POST.class}) @EmptyInterface({"sessionId"}) public void logout(String sessionId) { SsoLoginHelper.logout(sessionId); } }