|
|
@@ -19,6 +19,8 @@ import com.uas.sso.util.*;
|
|
|
import com.uas.sso.web.waf.request.WafRequestWrapper;
|
|
|
import com.uas.sso.foreign.weixin.entity.OAuthInfo;
|
|
|
import com.uas.sso.foreign.weixin.service.WeChatService;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.util.Assert;
|
|
|
@@ -84,9 +86,13 @@ public class LoginController extends BaseController {
|
|
|
@Autowired
|
|
|
private BiHeService biHeService;
|
|
|
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(LoginController.class);
|
|
|
+
|
|
|
@RequestMapping(method = RequestMethod.POST)
|
|
|
public ModelMap login() {
|
|
|
// 获取登录信息
|
|
|
+ Long start = System.currentTimeMillis();
|
|
|
+ request.getSession().setAttribute("time", start);
|
|
|
WafRequestWrapper wr = new WafRequestWrapper(request);
|
|
|
String appId = wr.getParameter("appId");
|
|
|
String spaceUU = wr.getParameter("spaceUU");
|
|
|
@@ -120,7 +126,7 @@ public class LoginController extends BaseController {
|
|
|
if (StringUtils.isEmpty(returnUrl)) {
|
|
|
returnUrl = HOME_PAGE;
|
|
|
}
|
|
|
-
|
|
|
+ logger.info(start + " 1获取登录信息:" + (System.currentTimeMillis() - start));
|
|
|
// 获取用户基本信息
|
|
|
User user = userService.findByUsername(username);
|
|
|
if (user == null) {
|
|
|
@@ -149,6 +155,7 @@ public class LoginController extends BaseController {
|
|
|
pwdErrorCount = inputErrorPwd(user.getUserUU());
|
|
|
return error("您输入的账号或密码有误").addAttribute("errorCount", pwdErrorCount);
|
|
|
}
|
|
|
+ logger.info(start + " 2校验密码:" + (System.currentTimeMillis() - start));
|
|
|
|
|
|
// 校验密码强度,如果和存储的不同,则保存
|
|
|
int strength = PasswordLevelUtils.checkPasswordLevel(password).getValue();
|
|
|
@@ -156,6 +163,7 @@ public class LoginController extends BaseController {
|
|
|
user.setPasswordLevel(strength);
|
|
|
userService.save(user);
|
|
|
}
|
|
|
+ logger.info(start + " 3校验密码强度:" + (System.currentTimeMillis() - start));
|
|
|
return success(login(user.getUserUU(), appId, spaceUU, returnUrl));
|
|
|
}
|
|
|
|
|
|
@@ -390,23 +398,27 @@ public class LoginController extends BaseController {
|
|
|
* 设置登录 Cookie 最后一个参数 true 时添加 cookie 同时销毁当前 JSESSIONID
|
|
|
* 创建信任的 JSESSIONID
|
|
|
*/
|
|
|
- UserRecord userRecord = userRecordService.findOne(userAccount.getUserUU());
|
|
|
- userAccount.setLastLoginTime(Optional.ofNullable(userRecord).map(UserRecord::getLastLoginTime).orElse(null));
|
|
|
+ long start = (long) request.getSession().getAttribute("time");
|
|
|
+ logger.info(start + " 4选择登录账套:" + (System.currentTimeMillis() - start));
|
|
|
+ // 设置登录时间,并将密码输错次数设为0
|
|
|
+ UserRecord userRecord = new UserRecord(userAccount.getUserUU());
|
|
|
+ userRecord.setLastLoginTime(System.currentTimeMillis());
|
|
|
+ userService.save(userRecord);
|
|
|
+ userAccount.setLastLoginTime(userRecord.getLastLoginTime());
|
|
|
+ logger.info(start + " 5设置上次登录时间:" + (System.currentTimeMillis() - start));
|
|
|
+
|
|
|
String baseUrl = (String) request.getSession().getAttribute("baseUrl");
|
|
|
baseUrl = HttpUtil.decodeURL(baseUrl);
|
|
|
SSOToken st = new SSOToken(request, userAccount.getMobile());
|
|
|
st.setData(JSON.toJSONString(userAccount));
|
|
|
SSOHelper.setSSOCookie(request, response, st, true);
|
|
|
-
|
|
|
- // 设置登录时间,并将密码输错次数设为0,为空则不设置
|
|
|
- userRecord = new UserRecord(userAccount.getUserUU());
|
|
|
- userRecord.setLastLoginTime(System.currentTimeMillis());
|
|
|
- userService.save(userRecord);
|
|
|
+ logger.info(start + " 6设置cookie:" + (System.currentTimeMillis() - start));
|
|
|
|
|
|
// 设置返回值,通知各个应用用户已经登录
|
|
|
ModelMap data = new ModelMap();
|
|
|
data = addOtherAppRequestData(userAccount, data, baseUrl, isLoginAll);
|
|
|
data.put("returnUrl", HttpUtil.decodeURL(returnUrl));
|
|
|
+ logger.info(start + " 7设置返回值:" + (System.currentTimeMillis() - start));
|
|
|
return data;
|
|
|
}
|
|
|
|