You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
3.6 KiB

2 months ago
package com.dsideal.Sso.Controller;
import java.util.Map;
import java.util.UUID;
2 months ago
import com.dsideal.Sso.Interceptor.EmptyInterface;
2 months ago
import com.dsideal.Sso.Model.LoginModel;
2 months ago
import com.dsideal.Sso.Util.LoginLogUtil;
2 months ago
import com.jfinal.aop.Before;
import com.jfinal.ext.interceptor.POST;
2 months ago
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
*/
2 months ago
@Before({POST.class})
@EmptyInterface({"userName", "passWord"})
public void doLogin(String userName, String passWord) {
2 months ago
JSONObject resultJson = new JSONObject();
2 months ago
// 密码进行ldap算法的md5加密
LdapPassWordEncoder passEncode = new LdapPassWordEncoder();
String passwordEncode = passEncode.getLdapPassword(passWord);
2 months ago
Map loginMap = LoginModel.lm.getLoginInfoByUserName(userName);
2 months ago
if (loginMap == null || !passwordEncode.equals(loginMap.get("password").toString())) {
2 months ago
resultJson.put("success", false);
2 months ago
resultJson.put("msg", "用户名或密码错误!");
2 months ago
renderJson(resultJson);
}
2 months ago
String sessionId = UUID.randomUUID().toString();
SsoLoginHelper.login(sessionId, loginMap);
resultJson.put("success", true);
resultJson.put("sessionId", sessionId);
2 months ago
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());
}
2 months ago
//记录人员登录日志
2 months ago
if (loginMap != null) {
LoginLogUtil.WriteLoginLog(loginMap.get("identity_id").toString(), loginMap.get("person_id").toString(), LoginLogUtil.getIpAddr(getRequest()));
}
2 months ago
renderJson(resultJson);
2 months ago
}
/**
*
*/
2 months ago
@Before({POST.class})
@EmptyInterface({"sessionId"})
public void loginCheck(String sessionId) {
2 months ago
JSONObject resultJson = new JSONObject();
2 months ago
if (!sessionId.equals("null") && !sessionId.isEmpty()) {
Map<String, String> loginMap = SsoLoginHelper.loginCheck(sessionId);
if (loginMap == null) {
2 months ago
resultJson.put("success", false);
resultJson.put("msg", "sessionId 已失效!");
2 months ago
} 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"));
2 months ago
}
2 months ago
} else {
resultJson.put("success", false);
resultJson.put("msg", "sessionId 已失效!");
2 months ago
}
renderJson(resultJson);
}
/**
* app
*
* @throws Exception
*/
2 months ago
@Before({POST.class})
@EmptyInterface({"sessionId"})
public void logout(String sessionId) {
2 months ago
SsoLoginHelper.logout(sessionId);
}
}