/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有,侵权必究!
*/
package com.zt.security.controller;
import com.alibaba.fastjson.JSONObject;
import com.zt.common.constant.Constant;
import com.zt.common.exception.ErrorCode;
import com.zt.common.exception.RenException;
import com.zt.common.servlet.Result;
import com.zt.common.utils.IpUtils;
import com.zt.common.validator.AssertUtils;
import com.zt.common.validator.ValidatorUtils;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.core.security.BCryptPasswordEncoder;
import com.zt.core.security.Md5Utils;
import com.zt.core.sys.model.SysUser;
import com.zt.modules.log.enums.LoginOperationEnum;
import com.zt.modules.log.enums.LoginStatusEnum;
import com.zt.modules.log.model.SysLogLogin;
import com.zt.modules.log.service.SysLogLoginService;
import com.zt.modules.sys.service.SysParamsService;
import com.zt.modules.sys.service.SysUserService;
import com.zt.security.dto.LoginDto;
import com.zt.security.model.LoginInfo;
import com.zt.security.model.LoginUser;
import com.zt.security.service.CaptchaService;
import com.zt.security.service.SysUserTokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 登录
*
* @author hehz
*/
@RestController
@Api(tags = "登录管理")
public class LoginController {
@Value("${data.menuPos}")
private String menuPos;
@Value("${data.debug}")
private Boolean debug;
@Value("${data.test}")
private Boolean test;
@Value("${data.testNewFun}")
private Boolean testNewFun;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysUserTokenService sysUserTokenService;
@Autowired
private CaptchaService captchaService;
@Autowired
private SysLogLoginService sysLogLoginService;
@Autowired
private SysParamsService paramsService;
@GetMapping("captcha")
@ApiOperation(value = "验证码", produces = "application/octet-stream")
@ApiImplicitParam(dataType = Constant.QT.STRING, name = "uuid", required = true)
public void captcha(HttpServletResponse response, String uuid) throws IOException {
// uuid不能为空
AssertUtils.isBlank(uuid, ErrorCode.IDENTIFIER_NOT_NULL.getCode());
// 生成验证码
captchaService.create(response, uuid);
}
@PostMapping("loginProcess")
@ApiOperation(value = "登录")
public Result loginProcess(HttpServletRequest request, @RequestBody LoginDto login) {
sysUserTokenService.loginProcess();
return Result.ok();
}
@PostMapping("login")
@ApiOperation(value = "登录")
public Result