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.

61 lines
2.0 KiB

package com.dsideal.sso.Controller;
import java.util.Map;
import java.util.UUID;
import com.dsideal.sso.Interceptor.EmptyInterface;
import com.dsideal.sso.Util.CommonUtil;
import com.dsideal.sso.Util.SsoLoginHelper;
import com.jfinal.aop.Before;
import com.jfinal.ext.interceptor.POST;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.core.Controller;
public class AppLoginController extends Controller {
/**
* app登录
*
* @param username 用户名
* @param password 密码
*/
@Before({POST.class})
@EmptyInterface({"username", "password"})
public void doLogin(String username, String password) {
JSONObject resultJson = new JSONObject();
String passwordEncode = CommonUtil.getLdapPassword(password);
Map<String, String> loginMap = CommonUtil.getLoginRouteMap(username);
if (passwordEncode != null && (loginMap == null || !passwordEncode.equals(loginMap.get("password")))) {
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("identity_id", loginMap.get("identity_id"));
}
if (loginMap != null) {
resultJson.put("person_id", loginMap.get("person_id"));
}
if (loginMap != null) {
resultJson.put("person_name", loginMap.get("person_name"));
}
if (loginMap != null) {
resultJson.put("bureau_id", loginMap.get("bureau_id"));
}
renderJson(resultJson);
}
/**
* app登出
*
* @throws Exception
*/
public void logout() {
String sessionId = getPara("sessionId");
SsoLoginHelper.logout(sessionId);
}
}