心通达OA单点登录接口
package com.xoa.controller.sso;
import com.xoa.controller.login.loginController;
import com.xoa.dao.common.SysParaMapper;
import com.xoa.dao.sys.SysInterfaceMapper;
import com.xoa.dao.users.OrgManageMapper;
import com.xoa.dao.users.UserExtMapper;
import com.xoa.dao.users.UserFunctionMapper;
import com.xoa.model.common.SysPara;
import com.xoa.model.common.Syslog;
import com.xoa.model.sys.InterfaceModel;
import com.xoa.model.users.OrgManage;
import com.xoa.model.users.UserOnline;
import com.xoa.model.users.Users;
import com.xoa.service.sys.SysLogService;
import com.xoa.service.users.UsersService;
import com.xoa.util.CookiesUtil;
import com.xoa.util.DateFormatUtils;
import com.xoa.util.LoginState;
import com.xoa.util.ToJson;
import com.xoa.util.common.StringUtils;
import com.xoa.util.common.session.SessionUtils;
import com.xoa.util.dataSource.ContextHolder;
import com.xoa.util.sso.CASUtils;
import com.xoa.util.sso.LoginUser;
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.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.xoa.controller.login.loginController.userCountMap;
@Controller
@RequestMapping("/sso")
public class SsoController {
@Autowired
private OrgManageMapper orgManageMapper;
@Resource
private SysLogService sysLogService;
@Resource
private UsersService usersService;
@Autowired
private SysParaMapper sysParaMapper;
@Autowired
private UserExtMapper userExtMapper;
@Autowired
private loginController loginController;
@Autowired
UserFunctionMapper userFunctionMapper;
@Resource
private SysInterfaceMapper sysInterfaceMapper;
@RequestMapping("/ssoIndex")
public String defaultIndex() {
return null;
}
/**
*用户登录
*/
@RequestMapping(value = "/ssoLogin", produces = {
"application/json;charset=UTF-8"})
@ResponseBody
public ToJson<Users> ssoLoginEnter(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
response.addHeader("Access-Control-Max-Age", "1800");//30 min
// 获取企业微信和钉钉登陆判断参数
String thirdPartyType = request.getParameter("thirdPartyType");
String loginId="1001";
Integer h5Login=1;
String userAgent="pc";
String password="temp";
CASUtils casUtils = new CASUtils();
HttpSession session = request.getSession();
String targetUrl = casUtils.getBasePath(request);
/** 判断是否已经登录过 */
if (casUtils.isLogin(session)) {
//如果登录,重定向到targetUrl
response.sendRedirect(targetUrl+"main");
//如果没有登陆过
} else {
//判断票据是否存在
if (casUtils.hasTicket(request)) {
//存在就获取Cas登录Url 登录成功后返回票据 */
LoginUser loginUser = casUtils.getLoginUser(request);
//判断是否登录过
if (loginUser.isLogin() ) {
/** 写入单页面登录判断标志 */
casUtils.login(loginUser, session);
String username = loginUser.getAccount();
CookiesUtil.setCookie(response,"redisSessionId",request.getSession().getId());
Cookie redisSessionCookie = new Cookie("redisSessionId",request.getSession().getId());
if (StringUtils.checkNull(loginId)) {
List<OrgManage> org = orgManageMapper.queryId();
if (org != null