Commit aca13562 authored by 赵啸非's avatar 赵啸非

修改文档与添加登录返回token和过期时间

parent 101b89cf
...@@ -8,6 +8,8 @@ import java.util.Set; ...@@ -8,6 +8,8 @@ import java.util.Set;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.lang.UUID;
import com.mortals.framework.util.*;
import com.mortals.xhx.base.system.menu.model.MenuEntity; import com.mortals.xhx.base.system.menu.model.MenuEntity;
import com.mortals.xhx.base.system.menu.service.MenuService; import com.mortals.xhx.base.system.menu.service.MenuService;
import com.mortals.xhx.base.system.resource.service.ResourceService; import com.mortals.xhx.base.system.resource.service.ResourceService;
...@@ -32,11 +34,6 @@ import com.mortals.framework.model.CookieInfo; ...@@ -32,11 +34,6 @@ import com.mortals.framework.model.CookieInfo;
import com.mortals.framework.service.ICacheService; import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.ITokenService; import com.mortals.framework.service.ITokenService;
import com.mortals.framework.service.IUser; import com.mortals.framework.service.IUser;
import com.mortals.framework.util.AESUtil;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.MD5Util;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseCRUDJsonController; import com.mortals.framework.web.BaseCRUDJsonController;
import static com.mortals.framework.ap.SysConstains.PROP_COOKIE_DOMAIN; import static com.mortals.framework.ap.SysConstains.PROP_COOKIE_DOMAIN;
...@@ -106,11 +103,12 @@ public class LoginController extends BaseCRUDJsonController<UserService, UserFor ...@@ -106,11 +103,12 @@ public class LoginController extends BaseCRUDJsonController<UserService, UserFor
data.put("userType", userEntity.getUserType()); data.put("userType", userEntity.getUserType());
//设置token 和过期时间 //设置token 和过期时间
CookieInfo loginCookie = CookieService.getLoginCookie(request); // CookieInfo loginCookie = CookieService.getLoginCookie(request);
if(!ObjectUtils.isEmpty(loginCookie)){ // if(!ObjectUtils.isEmpty(loginCookie)){
data.put("token", loginCookie.getToken()); //
data.put("expiresTime",loginCookie.getExpiresTime().getTime()); // }
} data.put("token", UUID.fastUUID().toString());
data.put("expiresTime", DateUtils.addCurrDate(7).getTime());
// this.generateBlackCookie(request, response, loginName, urls); // this.generateBlackCookie(request, response, loginName, urls);
ret.put(KEY_RESULT_DATA, data); ret.put(KEY_RESULT_DATA, data);
...@@ -236,68 +234,7 @@ public class LoginController extends BaseCRUDJsonController<UserService, UserFor ...@@ -236,68 +234,7 @@ public class LoginController extends BaseCRUDJsonController<UserService, UserFor
} }
} }
//重写登录cook设置
private static CookieInfo setLoginCookie(HttpServletResponse response, IUser user, String securityKey,
String cookieDomain, int cookieMaxAge) {
try {
//设置cookie有效串,防篡改 LTPA版本号+创建时间+过期时间+用户名+LTPA密钥
// SHA-1=LTPA版本号+创建时间+过期时间+用户名+Domino LTPA 密钥
// LTPA Cookie= Base64(LTPA版本号+创建时间+过期时间+用户名+SHA-1)
Calendar cal = Calendar.getInstance();
long currTime = cal.getTime().getTime() / 1000;
cal.add(Calendar.DAY_OF_YEAR, 1);
long expiresTime = cal.getTime().getTime() / 1000;
Long userId = user.getId();
int userType = user.getUserType();
String loginName = user.getLoginName();
String userName = user.getRealName();
Long customerId = user.getCustomerId();
Long customerJoinId = user.getCustomerJoinId();
String customerNum = user.getCustomerNum();
String customerJson = "";
Long deptId = user.getDeptId();
Long roleId = 0L;
Long siteId = user.getSiteId();
String deptName = user.getDeptName();
int deptManager = user.isManager() ? 1 : 0;
if (customerId != null || customerJoinId != null || StringUtils.isNotEmpty(customerNum)) {
try {
customerJson = DataUtil.conver2Long(customerId) + CookieService.COOKIE_STORE_SPLIT
+ DataUtil.conver2Long(customerJoinId) + CookieService.COOKIE_STORE_SPLIT
+ StringUtils.trim(customerNum) + CookieService.COOKIE_STORE_SPLIT
+ DataUtil.conver2Int(deptId) + CookieService.COOKIE_STORE_SPLIT
+ StringUtils.trim(deptName) + CookieService.COOKIE_STORE_SPLIT
+ deptManager + CookieService.COOKIE_STORE_SPLIT
+ roleId + CookieService.COOKIE_STORE_SPLIT
;
customerJson = AESUtil.encrypt(customerJson, securityKey);
} catch (Exception e) {
logger.debug("用户的关联信息加密异常-->" + e.getMessage());
}
}
customerJson = StringUtils.trim(customerJson);
String cookieStroe = CookieService.COOKIE_STORE_VERSION + CookieService.COOKIE_STORE_SPLIT + currTime
+ CookieService.COOKIE_STORE_SPLIT + expiresTime;
String pinId = AESUtil.encrypt(userId.toString() + CookieService.COOKIE_STORE_SPLIT + userType+ CookieService.COOKIE_STORE_SPLIT + siteId,
securityKey);
String trackId = MD5Util.getSignAndMD5(cookieStroe, pinId, loginName, userName, customerJson, securityKey);
HttpUtil.setCookieValue(response, SysConstains.COOKIE_PIN, loginName, cookieDomain, cookieMaxAge);
HttpUtil.setCookieValue(response, SysConstains.COOKIE_PIN_ID, pinId, cookieDomain, cookieMaxAge);
HttpUtil.setCookieValue(response, SysConstains.COOKIE_UNICK, userName, cookieDomain, cookieMaxAge);
HttpUtil.setCookieValue(response, SysConstains.COOKIE_STORE, cookieStroe, cookieDomain, cookieMaxAge);
HttpUtil.setCookieValue(response, SysConstains.COOKIE_STORE_TOKEN, trackId, cookieDomain, cookieMaxAge);
if (StringUtils.isNotEmpty(customerJson)) {
HttpUtil.setCookieValue(response, SysConstains.COOKIE_UNION, customerJson, cookieDomain, cookieMaxAge);
}
CookieInfo info = new CookieInfo(trackId, new Date(currTime), new Date(expiresTime), user);
return info;
} catch (Throwable e) {
logger.warn("设置用户的cookie异常-->" + e.getMessage());
return null;
}
}
//
// @Override // @Override
// protected void saveCurrUser(HttpServletRequest request, HttpServletResponse response, IUser user, int maxAge) { // protected void saveCurrUser(HttpServletRequest request, HttpServletResponse response, IUser user, int maxAge) {
// String securityKey = GlobalSysInfo.getPropertyValue(PROP_COOKIE_SECURITY_KEY); // String securityKey = GlobalSysInfo.getPropertyValue(PROP_COOKIE_SECURITY_KEY);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment